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