Javaでやりたいことのクラスを取得しましたが、それは行を使用しています
text[i] = text[i].replaceAll("\\cM?\r?\n", "");
コマンド replaceAll が最初の文字列を 2 番目の文字列に置き換えることは完全に理解していますが、「\cM?\r?\n」の意味が完全にはわかりません。
誰かが引用符の間でこのテキストを説明できれば幸いです. (ググってみましたが、満足のいく答えが見つかりませんでした)
Javaでやりたいことのクラスを取得しましたが、それは行を使用しています
text[i] = text[i].replaceAll("\\cM?\r?\n", "");
コマンド replaceAll が最初の文字列を 2 番目の文字列に置き換えることは完全に理解していますが、「\cM?\r?\n」の意味が完全にはわかりません。
誰かが引用符の間でこのテキストを説明できれば幸いです. (ググってみましたが、満足のいく答えが見つかりませんでした)
\cM は Control-M またはキャリッジ リターン文字と一致します
\r 改行文字に一致
\n は改行です
? 直前の文字または部分式に 0 回または 1 回一致します。たとえば、「しますか?」"do" または "dos" の "do" に一致します。? {0,1} と同等
オペレーティング システムが異なれば、Windows で新しい行を開始する方法も異なります。POSIX では /r/n が異なります。ec ect。
コードは基本的にすべての新しい行を削除し、すべてを 1 行にまとめています。
すべての改行文字に一致します。\cM
は Windows の行末です。\r\n
は、Windows で行末を行う別の方法です。\n
標準の Unix 行末です。
?
オプションを意味します。
そのため\cM
、or\r\n
または\n
which はすべてのタイプの行末に一致します。すべてを1行で作成する必要があります...
先程コメントで書いた通り…
キャラクターエスケープ
\cX は制御文字に一致します。例: \cm は control-M に一致します。
\r はキャリッジ リターンと一致します。
\n 改行に一致します。
これは正規表現であり、あなたの場合、以下に一致する改行/改行文字をすべて削除します: \cM は Control-M またはキャリッジ リターン文字に一致し、\r はキャリッジ リターン文字に一致するために使用され、\n が使用されます新しい行の