java正则量词 占有型|支配型 怎么理解

Luger 2012-11-05 09:48:56
占有型|支配型 这两个是同一个类型吧 这个怎么理解
支配就是对整个字符串进行一次匹配,匹配之后返回
举个例子,字符串为bbb,正则表达式为[b]*+,这是一个贪婪的匹配,直接返回bbb
但是这里有个要注意的地方:如果正则为[b]*+b,返回结果是false,是空

所以虽然[b]*+匹配了,但是当再多了一个b的时候,有不满足要求了,因为他们是全局匹配的
这是网上找的 有点不明白呀
...全文
243 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Luger 2012-11-05
  • 打赏
  • 举报
回复
引用 1 楼 ticmy 的回复:
这要知道匹配的原理 如a*a *是匹配优先的,也就是说先匹配,如果正则的后续部分不能再匹配,就回溯,在这个例子中,匹配字符串aaa的时候,首先a*匹配到最后一个,然后发现正则后面还有一个a没法匹配,就会将a*回溯到字符串的中间一个a,这时候正则中的最后一个a与字符串的最后一个a正好匹配,匹配结束 如果正则是a*+a *+是占有优先,也就是说*+前面的字符会……
明白了 谢谢哈
龙四 2012-11-05
  • 打赏
  • 举报
回复
这要知道匹配的原理 如a*a *是匹配优先的,也就是说先匹配,如果正则的后续部分不能再匹配,就回溯,在这个例子中,匹配字符串aaa的时候,首先a*匹配到最后一个,然后发现正则后面还有一个a没法匹配,就会将a*回溯到字符串的中间一个a,这时候正则中的最后一个a与字符串的最后一个a正好匹配,匹配结束 如果正则是a*+a *+是占有优先,也就是说*+前面的字符会尽可能匹配,匹配了的就不会再回溯,不会让回去了,即所谓占有。如果字符串是aaa,那么这个例子中匹配过程就是a*+匹配了字符串的三个a,正则中的最后一个a不会再被匹配,因为a*+不会回溯

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧