经常看见正则表达式"()+",括号什么什么括号加,但是一直存在误解,写这个来做记录
误区
例如"(scdn)+"
官方解释: 一个或者更多个
官方匹配模板集:{csdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdncsdn(别数,我都不知道几个)…或者csdn}
我的误区模板集:{csdn,csdnscsdn,csdncsdncsdn,csdncsdncsdncsdn,csdncsdncsdncsdncsdn,csdncsdncsdncsdncsdncsdn,csdncsdncsdncsdncsdncsdncsdn,…}
两个模板去匹配
“csdnbanabanacsdncsdncsdn”
官方结果: csdn和csdncsdncsdn
我臆想中的结果 csdn和csdncsdn,csdncsdncsdn
上面的匹配贪婪型,也是平时看见的最多的情况,(csdn)+的意思是只匹配两种情况:一种是只有一个csdn
,另一种是尽可能的匹配多个连续
的csdn,而不应该把连续的csdn,拆开来匹配;匹配正确后他们对应的下标是0-3和12-23
用同样的正则表达式匹配
csdnbanabanacsdncsdncsdnbanabanacsdncsdn
匹配结果是:csdn、csdncsdncsdn、csdncsdn
而且他们对应的下标是0-3、12-23、32-39