+代表1次或者多次前面出现的正则表达式
代表0次或者多次前面出现的正则表达式
? +和都属于贪婪模式,然后加个?他就不是贪婪模式了,可是这三个如何使用怎么使用呢。有没有明白一点的说法呀
嗯?
* 匹配0个或多个的表达式
+ 匹配1个或多个的表达式
? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
+
和*
是针对一个字符的,并不是针对前面出现的表达式,也就是说sa+
只能匹配saaa...
而不能匹配sasasa...
至于?
的非贪婪模式,必须在分组匹配时才能使用,在分组匹配的()
的最后加上?
,表示该分组的匹配是非贪婪的
而在一般时候使用?
,表示的是前一个字符出现0次或一次!
例如:
使用正则表达式(aa+)
匹配字符串aaaaaaaaaa
的话,显然整个字符串都会匹配到
而使用表达式(aa+?)
匹配同样的字符串aaaaaaaaaa
,只会匹配到字符串中的前两个a
,即返回结果为aa