Javaの正規表現ライブラリでEOLが次のコマンドにある理由
Matcher matcher = Pattern.compile( "[\\\\r\\\\n$]+" ).matcher( " where " );
if ( matcher.find() )
{
// found reaction
}
これは改行正規表現ではありません。次の文字のいずれかを文字通り1回以上一致させています:\、、、、または。には、があるので、パターンは文字列にあります。r\n$wherer
改行正規表現は\r|\n|\r\nです。JAVAでは、円記号をエスケープする必要があるため、になります\\r|\\n|\\r\\n。
2つの問題:
\rと\n、ではなく\\r、\\nです。Javaでは、それらを一度エスケープする必要があるため、パターンはと\\rです\\n。" where "、キャリッジリターンと改行が含まれていません(\ rのみ)。これにより、キャリッジリターンとラインフィードが見つかります。
Matcher matcher = Pattern.compile( "[\\r\\n$]+" ).matcher( " where \n" );
if ( matcher.find() ){
System.out.println("found");
}