如何在Java中匹配字符串的开头?

如何在Java中匹配字符串的开头?,java,regex,Java,Regex,我想匹配一个HTML文件: 如果文件以空格开头,然后是结束标记,返回true 否则返回false 我使用了“(\\s)*.*”,但由于Gabe的帮助,它与\n\n…不匹配。盖布是对的。默认情况下,与\n不匹配。我需要打开DOTALL模式 要执行此操作,请将(?s)添加到正则表达式的开头,即(?s)(\\s)*.*也可以执行此操作: Pattern p = Pattern.compile("(\\s)*</(\\w)*>"); Matcher m = p.matcher(s); ret

我想匹配一个HTML文件:

如果文件以空格开头,然后是结束标记
返回true

否则
返回false


我使用了
“(\\s)*.*”
,但由于Gabe的帮助,它与
\n

\n…

不匹配。盖布是对的。默认情况下,
\n
不匹配。我需要打开
DOTALL
模式

要执行此操作,请将
(?s)
添加到正则表达式的开头,即
(?s)(\\s)*.*

也可以执行此操作:

Pattern p = Pattern.compile("(\\s)*</(\\w)*>");
Matcher m = p.matcher(s);
return m.lookingAt();
Pattern p=Pattern.compile(“(\\s)*”);
匹配器m=匹配器p;
返回m.lookingAt();

它只是检查字符串是否以模式开头,而不是检查整个字符串是否与模式匹配。

@Gabe我认为它与换行符匹配。看这里\是一个空白字符,是[\t\n\x0b\r\f]@JackWM的缩写:你说得对;它不一定与
\n
匹配。请参阅<代码> DOASTHY/<代码>模式。我认为您应该考虑阅读这样的答案。