正则表达式备忘

2023-12-30 07:02:22

.:匹配除换行符外的任一单字符

^:匹配开头,只命中后面的第一个字符/分组

$:匹配结尾,只命中前面的第一个字符/分组

?:匹配前面的表达式0次或1次

{n,m}:匹配前面的表达式以给定的次数,比如{2}表示要出现2次,{2,}表示要出现最少2次,{2,6}表示出现的次数可以是2到6次

*:匹配前面的表达式0次或多次,*等价于{0,}

+:匹配前面的表达式1次或多次,+等价于{1,}

\:转义字符

|:或运算符

[abc]:匹配[]里的任一字符,比如例子里表示匹配a或者b或者c,也可以在[]里面指定匹配的范围,如[0-9]、[a-zA-Z]

[^abc]:匹配任何指定字符之外的所有字符

():分组,匹配出现在括号里的整个字符串,可以搭配上面的限定符一起使用

\num:对前面()分组的引用,比如(abc)\1表示可以匹配abcabc;(abc)(def)\1\2表示可以匹配abcdefabcdef,其中\1表示引用(abc),\2表示引用(def)。注意引用的是实际的值而不是表达式,比如 (\w+).*\1 可以匹配 abc中文abc ,但不能匹配 abc中文123 ,因为 \1 引用到的是前面的 abc ,而不是\w+

(a|b):匹配出现在括号里的以|分隔开的多个字符串(或的关系),可以搭配上面的限定符一起使用

\w:匹配任意数字、字母、下划线,等价于[0-9a-zA-Z_]

\W:匹配任意非数字、字母、下划线,等价于[^0-9a-zA-Z_]

\d:匹配任意数字

\s:匹配任意空白字符,包括空格、制表符、换行符等

\S:匹配任意非空白字符

\b:单词边界符

[\u4e00-\u9fa5]:匹配中文

断言

先行断言从左往右看,后行断言从右往左看

(?=表达式):**正向先行断言:**指在某个位置向右看,表示所在位置右侧要能匹配给定表达式

(?!表达式):**反向先行断言:**指在某个位置向右看,表示所在位置右侧不能匹配给定表达式

(?<=表达式):**正向后行断言:**指在某个位置向左看,表示所在位置左侧要能匹配给定表达式

(?<!表达式):**反向后行断言:**指在某个位置向左看,表示所在位置右侧不能匹配给定表达式

常用正则表达式

^(?!.*(str)) :表示字符串里不能包含给定的字符,若不想包含多个给定字符,可以用 ^(?!.*(str1|str2))

(?=.*(补助|救助))(^(?!.*(交通|通讯))):包含补助/救助,同时不包含交通/通讯

'[^a-zA-Z0-9\u4e00-\u9fa5]+':去除所有非中文、英文字母和数字的字符

文章来源:https://blog.csdn.net/weixin_41878387/article/details/135286330
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。