Java中正则表达式()+误区记录

经常看见正则表达式"()+",括号什么什么括号加,但是一直存在误解,写这个来做记录

误区

例如"(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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章