1. 功能
- 匹配特定规则的字符串
2. 应用
- 词法分析器
- 登录的注册表单判断密码复杂度
- 爬虫
3. 语法
无符号:匹配有这个字符串的字符串。例如,正则表达式abc
匹配文中有abc的字符串。
限定符
?
:问好前面的字符匹配0或1次*
:星号前面的字符匹配0或n次(n>=1)+
:加号前面的字符匹配1或n次(n>=2){m, n}
:大括号前面的字符匹配m到n次(ab)
:小括号表示将多个字符看成一个整体
或运算
a|b
:a或者b
字符类
[]
:中括号表示指定范围[a-z]+
:匹配的字符串中的字符只能来自a-z,加号表示匹配一次或多次[^0-9]+
:匹配的字符串中的字符不能来自0-9(不能是数字)
元字符
- 反斜杠开头\,转义
\d
:数字\w
:单词字符,包括英文字母、数字和下划线\s
:空白字符,包括tab和换行符\D
:非数字\W
:非单词字符\S
:非空白字符\b
:表示单词边界。它匹配一个单词的开始或结束的位置,而不匹配任何实际的字符。
特殊字符
.
:英文句号代表除换行符外的所有字符^
:匹配行首,^a只会匹配行首的a$
:匹配行尾,a$只会匹配行尾的a
贪婪和懒惰
- 贪婪(默认):匹配结果尽可能多
- 懒惰:匹配结果尽可能少,在限定符后面加?切换懒惰模式