Java正则表达式中的EOL
为什么在Java的正则表达式库中,在下一个命令中可以找到EOLJava正则表达式中的EOL,java,regex,Java,Regex,为什么在Java的正则表达式库中,在下一个命令中可以找到EOL Matcher matcher = Pattern.compile( "[\\\\r\\\\n$]+" ).matcher( " where " ); if ( matcher.find() ) { // found reaction } 这不是一个新行正则表达式。您正在逐字匹配下列字符之一1次或多次:\、r、\、n或$。在where中,有一个r,因此该模式可以在字符串中找到 新行regex是\r |\n |\r\n。在JAVA中
Matcher matcher = Pattern.compile( "[\\\\r\\\\n$]+" ).matcher( " where " );
if ( matcher.find() )
{
// found reaction
}
这不是一个新行正则表达式。您正在逐字匹配下列字符之一1次或多次:
\
、r
、\
、n
或$
。在where
中,有一个r
,因此该模式可以在字符串中找到
新行regex是\r |\n |\r\n
。在JAVA中,需要避开反斜杠,因此将出现两个问题:
\r
和\n
,而不是\\r
和\\n
。在Java中,您需要转义它们一次,因此模式是\\r
和\\n
“其中”
)不包含任何回车符+换行符(仅\r)Matcher matcher = Pattern.compile( "[\\r\\n$]+" ).matcher( " where \n" );
if ( matcher.find() ){
System.out.println("found");
}
问题是什么?