正则表达式多次出现短语java

时间:2016-10-14 21:31:01

标签: java regex

我需要一个正则表达式,可以识别给定文本是否包含两个彼此接近的短语,例如彼此相距0-5个字。人们可能会认为减去两个短语的索引可以解决问题。但这很难,特别是当文本中出现多次短语时。这是一个玩具示例,每个短语出现1次:

例如,

         phrase1 = "i eat"
         phrase2 = "red apple"

匹配
        text1 = "i eat a sweet juicy red apple "

因为两个短语之间只有3个单词,但它与

不匹配
        text2 = "i eat a sweet juicy orange yesterday. I also like red apples "

因为中间超过5个字。有一个简单的方法吗? Thansk。

1 个答案:

答案 0 :(得分:0)

这是一个对我有用的解决方案:

 Pattern.matches(".*\\b" + phrase1 + "\\W*(?:\\w*\\W*){0,5}?" + phrase2 + "\\b.*", text))