Java Regexp匹配确切的单词

时间:2017-10-01 21:00:45

标签: java regex

我有这个java正则表达式。

        InitializeComponent();   <--- !!!
        {
            textBox1.Text = ("Enter the path to a JPEG image file:");
            ...
        }

注意...... java

我试图匹配整个单词k或K而不是公斤或公里。 IVe尝试了\\ bk \\ b但在线测试人员显示不匹配。是否与方括号有关。

提前谢谢

1 个答案:

答案 0 :(得分:1)

除了目前您的模式在任何字符之前匹配kK之外,它与£1k之类的值不匹配,因为+量词需要另一个数字, kK之前的点或逗号。

另请注意,[\\b]与字边界不匹配,只与b字母匹配。

\b[\\d\\,\\.]+之间加[k|K]并不是一个好主意,因为. / ,和{{1}之间始终存在单词边界数字和k之间没有字边界。

您需要使用

k

<强>详情

  • Pattern regex = Pattern.compile("(£\\d[\\d,.]*)[kK]\\b"); - 第1组:
    • (£\\d[\\d,.]*) - 一个英镑符号
    • £ - 数字
    • \\d - 零个或多个数字,[\\d,.]*,
  • . - [kK]k
  • K - 一个单词边界(\\bk后必须有字符串结尾或非单词字符