正则表达式匹配整个单词OR运算符

Fir*_*iew 2 java regex

我试图匹配某些行的完整单词,想知道如何在正则表达式中使用OR,如果我只使用一个关键字,它工作正常.例,

regex = ".*\\b" + "KEYWORD1" + "\\b.*";


String regex = ".*\\b" + "KEYWORD1|KEYWORD2|KEYWORD3" + "\\b.*";

    for (int i = start; i < end; i++) {           
        if (lines[i].matches(regex)) {
            System.out.println("Matches");
        }
    }
Run Code Online (Sandbox Code Playgroud)

Ken*_*rey 8

你要:

String regex = ".*\\b(KEYWORD1|KEYWORD2|KEYWORD3)\\b.*";
Run Code Online (Sandbox Code Playgroud)

最初,你的正则表达式正在评估如下:

.*\bKEYWORD1
|
KEYWORD2
|
KEYWORD3\b.*
Run Code Online (Sandbox Code Playgroud)

但你想要:

.*\b
(
    KEYWORD1
    |
    KEYWORD2
    |
    KEYWORD3
)
\b.*
Run Code Online (Sandbox Code Playgroud)

这个很酷的工具可以帮助您分析正则表达式并找到像这样的错误.