我需要一些 Java 正则表达式方面的帮助。
我的文字是这样的abc abc abc xyz xyz xyz
。我需要找到所有在和之间只有一个词的匹配项abc
xyz
这里有两个应该返回的匹配项:
abc abc xyz
==>和abc
之间存在一个abc
xyz
abc xyz xyz
==>和xyz
之间存在一个abc
xyz
我的正则表达式模式:
abc\s+([a-z]*?)\s+xyz
它似乎只匹配第一个匹配项abc abc xyz
。它没有找到abc xyz xyz
匹配所有的正确模式是什么?
如果您只需要中间的一个词而不是您在评论中所述的完整匹配,您可以使用积极的 Lookbehind 和积极的 Lookahead,如下所示:
(?<=abc\s)[a-z]+(?=\sxyz)
这是一个演示。
如果您确实需要完整匹配,或者您希望单词前后有多个空格,您可能需要查看Andreas 的答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句