正则表达式(补

1.限定符

a*:表示a重复0次及以上

a+:表示a重复1次及以上

a?:表示a重复0次或1次

a{n}:表示a重复n次

a{n,}:表示a重复n次或更多次

a{n,m}:表示a重复n到m次

注:如果需要判断字符串的重复:(字符串)限定符

2.或运算符 "|"

eg. a(cat|dog):匹配的字符串是acat或adog

3.字符类

我们想匹配由a、b、c组成的字符串,就可以写作:[abc]+

[ ]表示:要求匹配的字符只能取自于[]内的

[a-z]:表示匹配的字符取自小写的a到z

[a-zA-Z]:表示匹配的字符取自所有英文字符

[a-zA-z0-9]:表示匹配的字符取自所有英文字符和数字

^:在[前用,eg. [^0-9]:匹配取自除了0-9之外的所有字符的字符

4.元字符

\d:数字字符

\w:所有单词字符,即所有英文字符、数字和下划线

\s:空白符(Tab和换行符)

\D:非数字字符

\W:非单词字符

\S:非空白符

.:可以代表任何字符,但是不包括换行符

^:只匹配行首 eg. ^a:只匹配行首的a

$:只匹配行尾 eg.a$:只匹配行尾的a

5.贪婪与懒惰匹配

?可以将贪婪匹配切换为懒惰匹配

 eg. 正则表达式:<.+> 想要匹配的是<>内的内容

 但在匹配时 却将 <span><b>dhhdvciagye<span><b>的整句话都匹配了

 这是因为“.”表示任意字符,故将>也匹配了,解决方法是:将正则表达式改为:<.+?>

posted @ 2023-04-25 22:42  dfhkjsbc  阅读(60)  评论(0)    收藏  举报