正则表达式基本语法
分类:
文章
•
2023-10-16 14:58:08
一、正则表达式的基本语法
1、普通字符
2、简单的转义字符
- 换行符 \n
- 制表符 \t
- 特殊符号\\、\^、\$、\.、\)、\(、\{、\}、\?、\+、\*、\]、\|、\[
3、标准字符集合
- \d 任意一个数字
- \D任意一个非数字
- \w任意一个数字、字母、下划线
- \W任意一个非数字、字母、下划线
- \s空白符(换行、空行、制表)
- \S非空白符
- .任意一个字符(换行符除外)
4、自定义字符集
- [ ] 匹配方括号内任意一个字符
- [123]
- [1-5a-g]
- [^1-5a-g] 匹配除了1-5 a-g的字符
- 注:在[ ]中使用特殊符号,除了^和-外,都失去特殊意义,即不用\转义;
- 注:在[ ]正常可以使用标准字符集合(.不行,.被视为普通字符。)
5、量词(修饰匹配次数的特殊符号)
- {n} 匹配n次。如aaaaa可写为a{6}
- {n,m}最少匹配n次,最多匹配m次。
- 默认为贪婪模式,匹配字符越多越好
- 改为非贪婪模式:{n,m}?,匹配字符越少越好
- {n,}匹配次数至少n次
- ?:相当与{0,1}
- +:相当与{1,}
- *:相当与{0,}
5、字符边界
-
匹配的是字符串的某个位置,而不是字符
- ^与字符串开始的位置匹配,^123 即匹配字符串开头的123
-
$与字符串结束的位置匹配,123$即匹配字符串结尾的123
- \b匹配一个单词边界,123\b即匹配满足以下条件的位置:该位置左边为123右边为\W的字符,\b123同理
6、选择符合分组
- | 或
- ()捕获组;常用与反向引用\nnn,如:(a{2})(b{3})\2 匹配的为aabbbbbb,第一个括号匹配aa,并保存起来,加上第二个括号后匹配aabbb,并把第二个括号的bbb保存起来,\2表示再重复一遍第二个括号的字符即bbb,最终为aabbbbbb。又如haohao可以用 ([a-z]{3})\1 匹配到
- (?:)非捕获组:一些表达式不得不是使用()但又不需要保存()内的子表达式的内容,可以用这个。可以节省内存。
7、预搜索(零宽断言)
- (?=exp)断言位置后面可以匹配到表达式exp 如abc123中c和1之间的位置可以用abc(?=123)匹配到
- (?<=exp)断言位置前面可以匹配到表达式exp
- (?!exp)断言位置后面不可以匹配到表达式exp
- (?<!exp)断言位置前面不可以匹配到表达式exp
二、常用正则表达式
