-
符号"^“与”$"分别表示表达式开头结尾,一般可以省略。
例如^(\d+)(0*)$与(\d+)(0*)一样,因为正则表达式都是一行。 -
符号"+"表示可以匹配至少1个字符
AB+ 例如:AB,ABB,ABBB -
符号"?"表示可以匹配0个或者1个字符
AB+ 例如:AB,A -
符号"{n}"表示指定重复前面字符n次
AB{3} 为ABBB -
符号"{n,m}"表示可以匹配重复n~m个字符
AB{2,5} 例如:ABB,ABBB,ABBBB,ABBBBB -
符号"{n,}"表示可以匹配重复至少n个字符
AB{3,} 例如:ABBB,ABBBB,ABBBBBB -
符号"{,m}"表示可以匹配重复最多m个字符
AB{,2} 例如:A,ABB,AB -
符号"[…]"表示可以匹配[]内任意一个字符
[abfHd] 例如:a,b,f,H,d -
符号"[n-m]"表示可以匹配n-m范围内的1个字符
[B-H2-6hf] 例如:B,C,D,E,F,G,H,2,3,4,5,6,h,f -
符号"[^n-m]"表示可以匹配非n-m范围内的1个字符
[^B-H] 例如:A,I,J,K,1,7,8,9,&,a,b,c,s -
符号"AB|CD"表示可以匹配AB或者CD
-
符号"AB|CD|EFG"表示可以匹配AB或者CD或者EFG
-
重点:正则表达式默认使用贪婪匹配:表达式从实例中从左往右尽可能匹配更多。反之则为非贪婪匹配,用"?“表示
例如:用(\d+)(0*)匹配"123000”,“3450”,“8734060000”
\d匹配的结果为"123000",“3450”,“8734060000”
为什么"0*“没有匹配到"000”,“0”,“0000"呢
这就是因为正则表达式默认为贪婪匹配,从左往右尽可能匹配更多。
如果要让"0*“作用与匹配到"000”,“0”,“0000”,则使用”?"
非贪婪匹配表达式:(\d+?)(0*)
(\d??)(0*) 这里第一个“?”表示匹配0或1个字符,第二个“?”表示非贪婪匹配
小白入门正则表达式2
最新推荐文章于 2024-06-18 22:16:56 发布