这一个很简单,但似乎在困扰着我。用java中的空格匹配单词正则表达式
我有以下文本行:
for months to
我想用下面的正则表达式匹配它:
for\s*months\s*to
我读这正则表达式为:
- 必须有单词“for”
- 后面跟着任意数量的空间
- 其次是“月”字
- 后面紧跟着这个词的空间
- 任何量“到”
而对于我来说,这应该匹配,但它不。任何人都可以看到我可能出错的地方。
这一个很简单,但似乎在困扰着我。用java中的空格匹配单词正则表达式
我有以下文本行:
for months to
我想用下面的正则表达式匹配它:
for\s*months\s*to
我读这正则表达式为:
而对于我来说,这应该匹配,但它不。任何人都可以看到我可能出错的地方。
你很可能有先后的空白。使用String.matches(String regex)
您必须匹配整个字符串。
尝试"\\s*for\\s+months\\s+to\\s*"
我将它改为:'\ s * for \ s * months \ s * to'以允许任何空格开头,但它仍然不匹配 – user489041
这是因为您有在上面的例子中,最后一个空白符号。 – crush
这是因为后面的空格中。
试试这个:
Pattern p = Pattern.compile("for\\s*months\\s*to\\s*");
Matcher m = p.matcher("for months to ");
System.out.println(m.matches());
您的回答后我从OP问题中选择了“以下文本行”,并且选择显示了尾部的空格。接得好! :) – andr
你可能有多余的空格(和复制你的代码有多余的空格“到”后)。这是一个应该帮助你的链接。 http://fiddle.re/26pu – Scott