常用:
\b 匹配一个位置,例如查找某一具体单词 \bhello\b
\d匹配数字 例: \d\d\d相当于\d{3} 匹配三个数字 \d{3,5} 数字在3到5个
\w 匹配字母、数字或下划线或汉字
\s 匹配任意的空白符,包括空格,制表符 换行符 中文全角空格
.匹配除了换行符之外的所有字符
^匹配字符串的开始
$匹配字符串的结束
反义:
相对的正义的大写
注:
1 [^x]匹配除了x外的任意字符
2 [^abc]匹配除了abc外的任意字符
*匹配任意数量的不包含换行字符,0次到多次
+匹配1次到多次的不包含换行符
?重复0次或1次 \(? 表示'('出现一次或者不出现
{n}重复n次 {n,}重复n次或多次 {n,m}重复n到m次
(懒惰匹配:后面加“?” 表示尽可能减少重复,例如:*? 表示匹配任意次,但尽可能少)
\表示转义,查找“\”要用\\
[] 或 例子:
1. [0-9]相当于\d
2. [0-9a-z]
分支条件
| 例子: 0\d{2}-\d{8}|0\d{3}-\d{7}
匹配020-12345678或者0750-1234567这样的表达式
()对正则表达式进行分组
(\d{3}\.){3}\d{1,3} 匹配一个ip地址,但是对大小不检验
贪婪/非贪婪
默认是贪婪。懒惰量词是在贪婪量词后面加个?
高端用法:
后向引用:
1. (exp)匹配exp并到自动命名分组
2. (?<name>exp)或写成(?'name'exp)匹配exp到name分组 内,使 用时\k<name>
3. (?:exp)匹配exp但是不捕获也不分组
(?=exp)匹配exp结尾的前面部分
(?<=exp)匹配exp结尾的后面部分
(?!exp) 匹配后面跟的不是exp的位置
(?<\!exp) 匹配前面不是exp的位置