⊗jsSpREMl 114 of 294 menu

JavaScriptの正規表現における複数行モード

正規表現は、複数行の文字列を扱う際に特有の性質があります。 以下の文字列(通常の文字、改行文字、タブ文字を含む)を例に、 それらの性質を見ていきましょう:

let str = `111 222 333 444`;

改行文字

改行文字は、パターン '\n' を使用してマッチさせることができます:

let res = str.replace(/\n/g, '!');

結果、変数には以下の文字列が格納されます (行間の空白はタブ文字です):

`111! 222! 333! 444`;

タブ文字

タブ文字は、パターン '\t' を使用してマッチさせることができます:

let res = str.replace(/\t/g, '!');

結果、変数には以下の文字列が格納されます:

` 111 !222 !333 !444 `;

ドットの動作

パターン '.' は、複数行の文字列において改行文字をマッチしません:

let res = str.replace(/./g, '!');

結果、変数には以下の文字列が格納されます:

` !!! !!!! !!!! !!!! `;

任意の文字

複数行文字列内の全ての文字(改行文字を含む)をマッチさせるには、 [\s\S] という組み合わせを使う巧妙な方法があります:

let res = str.replace(/[\s\S]/g, '!');

結果、変数には以下の文字列が格納されます:

`!!!!!!!!!!!!!!!!!!`;

キャレット (^)

修飾子 'm' を使用して複数行モードを有効にすることができます。 このモードでは、キャレット (^) が各行の先頭にマッチします:

let res = str.replace(/^/gm, '!');

結果、変数には以下の文字列が格納されます:

` !111 !222 !333 !444 `;

ダラー ($)

パターン ' は、複数行モードでは各行の末尾にマッチします:

let res = str.replace(/$/gm, '!');

結果、変数には以下の文字列が格納されます:

` 111! 222! 333! 444! `;

実践問題

以下の文字列が与えられます:

` abc def ghi jkl `;

この文字列を以下のように変換する正規表現を書いてください:

` abc! def! ghi! jkl! `;

以下の文字列が与えられます:

` abc def ghi jkl `;

この文字列を以下のように変換する正規表現を書いてください:

` ! abc ! def ! ghi ! jkl `;

以下の文字列が与えられます:

` abc def ghi jkl `;

この文字列を以下のように変換する正規表現を書いてください:

`! abc def ghi jkl !`;

以下の文字列が与えられます:

` abc def ghi jkl `;

この文字列を以下のように変換する正規表現を書いてください:

`! ! abc ! def ! ghi ! jkl !`;

以下の文字列が与えられます:

` abc def ghi jkl `;

この文字列を以下のように変換する正規表現を書いてください:

`! abc! def! ghi! jkl! !`;

以下の文字列が与えられます:

` abc def ghi jkl `;

この文字列を以下のように変換する正規表現を書いてください:

` !abc !def !ghi !jkl `;
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否