【发布时间】:2012-09-17 04:16:55
【问题描述】:
是否可以仅使用正则表达式(无需额外代码!)来匹配第 n 个匹配项?例如:
“汽车”-“火车”-“船”-“自行车”
现在我只想匹配 BOAT,匹配的正则表达式是“[A-Z]+”,但这也匹配第一个、第二个和第四个。
有没有人为此提供纯正则表达式解决方案?我需要这个,因为我无法更改使用正则表达式的代码,但我可以提供正则表达式。
最好的问候, 罗宾
【问题讨论】:
-
那么,您对这段代码了解多少?它似乎使用了全局标志,但它支持哪些正则表达式风格?
-
大多数正则表达式风格将支持 $N(在您的情况下为 $3 用于“船”)进行多个匹配。
-
这是一个使用 Matcher 的简单 java 正则表达式。第一个匹配项正在用于进一步处理。
-
你能重新定义你的问题以匹配第 n 个到最后一个而不是第 n 个匹配吗?否则,您将陷入困境,因为 Java 对后向断言的支持有限。
标签: java regex regex-group