关于java:正则表达式按顺序查找单词但在其他单词之间

Regex to find words in order but in between other words

我在为特定场景实现regex时遇到问题。

假设输入是"棕色狗",从"快速棕色狐狸跳过懒惰的狗"中搜索。它应在以下条件下返回true:

  • -不区分大小写
  • -必须按顺序排列(第一个词是"the",第二个词是"brown",第三个词是"dog")。
  • 这意味着诸如"狗布朗"、"狐狸布朗"、"快速狐狸布朗"之类的输入将返回"假",但"狗"、"快速布朗"、"跳过"将返回"真"。希望我能提供足够的样品。

    到目前为止,我的regex "(?i)(?:\\S+\\s)?\\S*"+targetString+"\\S*(?:\\s\\S+)?"只适用于精确的字符串,而不适用于其他词之间的字符串。


    1
    2
    3
    4
    String reg ="";
    for(String s:targetString.split(' '))
       reg+= s +"(\\s|\\S)*";
    //Compile reg as regex and match using pattern

    看看这个