使用匹配在字符串开头匹配点?

时间:2012-04-18 19:24:09

标签: java regex matching

我正在尝试匹配一个字符串,使用java的匹配方法从一个点开始。为什么这不起作用:

".why?".matches("\\.*");

当我使用单斜杠时,我收到无效转义序列的错误。 提前致谢

2 个答案:

答案 0 :(得分:7)

"\\.*"匹配由零个或多个'.'组成的字符串。它匹配以下(引用)字符串:

""
"."
".."
"..."

(依此类推)

您想要:"\\..*"代替。请注意,.默认情况下与换行符不匹配,因此它与以下字符串不匹配:

".Why? \n Not!"

要匹配此类字符串,您需要启用DOT-ALL:"(?s)\\..*"

答案 1 :(得分:1)

亲自尝试过。这对我有用

System.out.println(".why?".matches("^\\..*"));

你只缺少一个“。”匹配“为什么?”部分。