正则表达式学习
元字符:
1. \b 元字符,代表单词的开头或者结尾,也就是单词的分界处。
2. . 元字符,代表除换行符以外的任意字符。
3. * 元字符,代表的不是字符,也不是位置,而是数量,指 * 前面的内容可以任意重复使用N次。
4. \d 元字符,匹配一位的数字(0~9).
5{NUM} 表示重复前面的字符NUM次,例如:0\d{2}-\d{8} = 0\d\d-\d\d\d\d\d\d\d\d。 \d{5,12} 表示不小于5位不大于12位的数字。
6. \s 元字符,表示匹配任意个空白符,包括空格,制表符(Tab),换行符,中文全角空格。
7. \w 元字符,表示字母、字符、汉字、下划线等。
8. ^ 元字符,表示匹配字符串的开始。
9. $ 元字符,表示匹配字符串的结束。
转义符:
需要转义的字符前面加 \ ,例如:\. , \* , \\等。
重复:
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
字符类:
[Characte] 表示匹配 [] 内列出的字符。例如:[.?!],[a-z0-9A-Z_]
分支条件:
条件1|条件2,从左往右,满足条件1 的就不判断条件2了,例如 \d{5}-\d{4}|\d{5} 和 \d{5}|\d{5}-\d{4} 就是不一样的。
分组:
(条件表达式){N} 重复 条件表达式 N次。
反义:
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
后向引用:
分类 代码/语法 说明
捕获 (exp) 匹配exp,并捕获文本到自动命名的组里
(?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成
(?'name'exp)
(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号
零宽断言 (?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
注释 (?#comment) 这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读