1. ホーム
  2. javascript

[解決済み] JS正規表現による行単位での分割

2023-03-29 01:54:06

質問

長いテキストを分割して表示するには?なぜ 行目 を2回返すのはなぜですか?

/^(.*?)$/mg.exec('line1\r\nline2\r\n');

["line1"、"line1"]のようになります。

複数行モディファイアをオンにして ^$ は行頭と行末に一致します。 また、グローバルモディファイアをオンにして、キャプチャした すべて の行をキャプチャするためにグローバルモディファイアをオンにしました。

正規表現による分割を行いたいのですが、その際に String.split というのは、Linux の \n と Windows \r\n という行末になります。

どのように解決するのですか?

arrayOfLines = lineString.match(/[^\r\n]+/g);

Timさんのおっしゃる通り、試合全体とキャプチャーと両方です。表示されるのは regex.exec(string) はグローバル修飾子に関係なく最初のマッチを見つけることを返しますが、一方 string.match(regex) はグローバルに敬意を表しています。