1

Javaでやりたいことのクラスを取得しましたが、それは行を使用しています

text[i] = text[i].replaceAll("\\cM?\r?\n", "");

コマンド replaceAll が最初の文字列を 2 番目の文字列に置き換えることは完全に理解していますが、「\cM?\r?\n」の意味が完全にはわかりません。

誰かが引用符の間でこのテキストを説明できれば幸いです. (ググってみましたが、満足のいく答えが見つかりませんでした)

4

4 に答える 4

3

正規表現です。

\cM は Control-M またはキャリッジ リターン文字と一致します

\r 改行文字に一致

\n は改行です

? 直前の文字または部分式に 0 回または 1 回一致します。たとえば、「しますか?」"do" または "dos" の "do" に一致します。? {0,1} と同等

オペレーティング システムが異なれば、Windows で新しい行を開始する方法も異なります。POSIX では /r/n が異なります。ec ect。

コードは基本的にすべての新しい行を削除し、すべてを 1 行にまとめています。

于 2013-08-29T20:14:01.100 に答える
1

すべての改行文字に一致します。\cMは Windows の行末です。\r\nは、Windows で行末を行う別の方法です。\n標準の Unix 行末です。

?オプションを意味します。

そのため\cM、or\r\nまたは\nwhich はすべてのタイプの行末に一致します。すべてを1行で作成する必要があります...

于 2013-08-29T20:14:05.203 に答える
1

先程コメントで書いた通り…

キャラクターエスケープ

\cX は制御文字に一致します。例: \cm は control-M に一致します。

\r はキャリッジ リターンと一致します。

\n 改行に一致します。

http://www.javascriptkit.com/javatutors/redev2.shtml

于 2013-08-29T20:15:48.410 に答える
0

これは正規表現であり、あなたの場合、以下に一致する改行/改行文字をすべて削除します: \cM は Control-M またはキャリッジ リターン文字に一致し、\r はキャリッジ リターン文字に一致するために使用され、\n が使用されます新しい行の

于 2013-08-29T20:34:17.180 に答える