为什么在Java中使用regex库,可以在下一个命令中找到EOL
Matcher matcher = Pattern.compile( "[\\\\r\\\\n$]+" ).matcher( " where " );
if ( matcher.find() )
{
// found reaction
}
答案 0 :(得分:5)
这不是新行正则表达式。您确实在以下字符中匹配以下字符之一或多次:\
,r
,\
,n
或$
。在where
中,有一个r
,因此模式可以在字符串中找到。
新行正则表达式为\r|\n|\r\n
。在JAVA中,您需要转义反斜杠,因此它将是\\r|\\n|\\r\\n
。
答案 1 :(得分:0)
两个问题:
\r
和\n
,而不是\\r
和\\n
。在Java中,您需要将它们转义一次,因此模式为\\r
和\\n
。" where "
)不包含任何回车符+换行符(只有\ r \ n)。这将找到回车符+换行符:
Matcher matcher = Pattern.compile( "[\\r\\n$]+" ).matcher( " where \n" );
if ( matcher.find() ){
System.out.println("found");
}