正则表达式匹配相等的字符串

时间:2012-09-25 15:42:22

标签: java regex regex-group

是否可以仅使用正则表达式(无附加代码!)来匹配第n个匹配?例如:

“CAR” - “TRAIN” - “BOAT” - “BICYCLE”

现在我只想匹配BOAT,匹配的正则表达式是“[A-Z] +”但是这也匹配第一个,第二个和第四个。

有没有人为此提供纯正的正则表达式解决方案?我需要这个,因为我无法更改使用正则表达式的代码,但我可以提供正则表达式。

祝你好运, 罗宾

3 个答案:

答案 0 :(得分:5)

我认为lookbehind应该这样做:

(?<=^("[A-Z]+"[\s-]+){2})"[A-Z]+"

匹配字符串开头后出现两个单词的单词

enter image description here

答案 1 :(得分:0)

如果我理解你正确并且您将多个字符串放入一个正则表达式,逐字符串,然后,则不可能

正则表达式本身没有比匹配时间更长的内存, 所以,如果你匹配一件事,那么在另一件事之后,就没有第一件事的信息了。

答案 2 :(得分:0)

(?!(\“[AZ] \”\ s- \ s){2})(\“[AZ] \”) - 其中{2}表示你的索引想。

唯一的问题是它返回指定索引之后的每个匹配项。您可以执行匹配并返回第一个结果。

使用正则表达式对您的示例进行测试。