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

mje*_*kov 2 java regex matching

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

".why?".matches("\\.*");
Run Code Online (Sandbox Code Playgroud)

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

Bar*_*ers 7

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

""
"."
".."
"..."
Run Code Online (Sandbox Code Playgroud)

(等等)

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

".Why? \n Not!"
Run Code Online (Sandbox Code Playgroud)

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