在java中匹配单词与空格正则表达式

时间:2013-01-16 19:31:31

标签: java regex

这一个很简单,但似乎在困扰我。

我有以下文字:

for        months to   

我正在尝试将其与以下正则表达式匹配:

for\s*months\s*to

我把这个正则表达式看作:

  1. 必须有“for”字样
  2. 随后有足够的空间
  3. 后面跟着“月”这个词
  4. 随后有足够的空间
  5. 后跟“to”一词
  6. 对我来说,这应该匹配,但它不会。任何人都可以看到我可能出错的地方。

2 个答案:

答案 0 :(得分:3)

这是因为尾随空格。

试试这个:

    Pattern p = Pattern.compile("for\\s*months\\s*to\\s*");
    Matcher m = p.matcher("for        months to   ");
    System.out.println(m.matches());

答案 1 :(得分:1)

您很可能拥有前面或后面的空格。使用String.matches(String regex),您必须匹配整个字符串。

尝试"\\s*for\\s+months\\s+to\\s*"