【问题标题】:Java Pattern regex whole word matchJava模式正则表达式全字匹配
【发布时间】:2017-02-01 23:45:00
【问题描述】:

我正在尝试将关键字与以下字符串匹配

"abc,pqr(1),xyz"

如果整个单词匹配例如,它将是成功的匹配。 "par" 或 "abc" 或 "xyz"

谁能帮我为这场比赛创建正则表达式?

String text    = "hello, hellos(1),bye";
    String keyword = "account";
    String patternString = "["+ keyword + "]";

    Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE);

    Matcher matcher = pattern.matcher(text);

    boolean matches = matcher.matches();

    System.out.println("matches = " + matches);

【问题讨论】:

  • 网上有一些非常有用的资源。就像regex testers 一样,它会在您编写正则表达式时为您提供解释。当您想学习如何使用它时非常好。
  • 您可以尝试将"[" + keyword + "]" 替换为"\\b" + keyword + "\\b",这样应该可以。
  • @Andrevin 是对的,但请注意:A)它还会在括号内找到单词 B)如果逗号之间允许复合词,那么任何部分都可以匹配 C)如果单词中有连字符, 这些也将被视为单词障碍 (\b)。

标签: java regex pattern-matching


【解决方案1】:

这应该可行。

([a-zA-Z]+)

输入:

"abc,pqr(1),xyz"

输出:

abc
pqr
xyz

见:https://regex101.com/r/Us6G3X/2

【讨论】:

  • 谢谢,但如果我的关键字是否有字母,它将匹配向你好也不向地狱
猜你喜欢
  • 1970-01-01
  • 2016-04-24
  • 2016-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多