我正在尝试匹配一个字符串,使用java的匹配方法从一个点开始。为什么这不起作用:
".why?".matches("\\.*");
当我使用单斜杠时,我收到无效转义序列的错误。 提前致谢
答案 0 :(得分:7)
"\\.*"
匹配由零个或多个'.'
组成的字符串。它匹配以下(引用)字符串:
""
"."
".."
"..."
(依此类推)
您想要:"\\..*"
代替。请注意,.
默认情况下与换行符不匹配,因此它与以下字符串不匹配:
".Why? \n Not!"
要匹配此类字符串,您需要启用DOT-ALL:"(?s)\\..*"
答案 1 :(得分:1)
亲自尝试过。这对我有用
System.out.println(".why?".matches("^\\..*"));
你只缺少一个“。”匹配“为什么?”部分。