我正在尝试匹配某些行中的完整单词,想知道如何在正则表达式中使用 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");
}
}
最佳答案
你想要:
String regex = ".*\\b(KEYWORD1|KEYWORD2|KEYWORD3)\\b.*";
最初,您的正则表达式是这样计算的:
.*\bKEYWORD1
|
KEYWORD2
|
KEYWORD3\b.*
但是你想要:
.*\b
(
KEYWORD1
|
KEYWORD2
|
KEYWORD3
)
\b.*
这很酷 tool可以帮助您分析正则表达式并找到类似这样的错误。
关于java - 正则表达式匹配整个单词或运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11442179/