java - 正则表达式匹配整个单词或运算符

标签 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");
        }
    }

最佳答案

你想要:

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/

相关文章:

java - 如何创建一个可点击的项目 ListView 以启动新 Activity

php - 使用php正则表达式获取YouTube播放列表ID

C++ 正则表达式 : non-greedy match

javascript - 在 JavaScript 中验证没有 www 的 URL

java - 需要从CSV文件中提取数据

java - hibernate - 类模型

java - 启动时加载和 Jersey

java - 使用解析时出现问题 - 无法解析对象

java - Range 类的这种实现有什么问题

正则表达式删除所有内容,但从 R 中的字符串中删除表情符号?