这个很简单,但似乎难倒我。
我有以下文本行:
for months to
我正在尝试将其与以下正则表达式匹配:
for\s*months\s*to
我将这个正则表达式读为:
- 必须有“为”字
- 后跟任意大小的空间
- 后跟“月”字
- 后跟任意大小的空间
- 后面跟着一个“to”字
对我来说,这应该匹配,但它不匹配。谁能看到我可能出错的地方。
这是因为尾随空格。
试试这个:
Pattern p = Pattern.compile("for\\s*months\\s*to\\s*");
Matcher m = p.matcher("for months to ");
System.out.println(m.matches());
您很可能有前面或后面的空格。使用String.matches(String regex)
你必须匹配整个字符串。
尝试"\\s*for\\s+months\\s+to\\s*"