JavaScriptの置換と正規表現の使用

JavaScriptのreplaceメソッドはJavaのものと同様に、文字列内の特定の部分を置換する機能を持っています。

構文:stringObj.replace(rgExp, replaceText)

  • stringObj: 置換対象となる文字列。
  • rgExp: 正規表現オブジェクトまたは文字列。置換したいパターンを指定します。
  • replaceText: 置換後のテキスト。一致した部分がこのテキストに置き換えられます。

JavaScriptではreplaceAllメソッドが存在せず、グローバルな置換を行うには正規表現を使用する必要があります。

例:文字列内のカンマをスペースに置換する場合:

substring.replace(/,/g, ' ');

例:%3C、%3E、<、>を空文字に置換する場合:

const reg = /%3C|%3E|<|>/g;
return r[2].replace(reg, '');

正規表現の修飾子:

i大文字小文字を区別せずにマッチング。
gすべてのマッチングを行う。
m複数行モードでマッチング。

よく使うメタキャラクタと正規表現:

\*次の文字を特殊文字、またはリテラルとして解釈。
^入力文字列の開始位置をマッチング。
$入力文字列の終了位置をマッチング。
*前のサブエキスプレッションを0回以上繰り返す。
+前のサブエキスプレッションを1回以上繰り返す。
?前のサブエキスプレッションを0回または1回繰り返す。
{n}前のサブエキスプレッションをn回繰り返す。
{n,}前のサブエキスプレッションをn回以上繰り返す。
{n,m}前のサブエキスプレッションをnからm回まで繰り返す。
?直前の修飾子を非貪欲モードにする。
.改行文字以外の任意の単一の文字をマッチング。
(pattern)patternをマッチングし、結果をキャプチャする。
(?:pattern)patternをマッチングするがキャプチャしない。
(?=pattern)patternの前に位置している場所をマッチングする。
(?!pattern)patternの前に位置していない場所をマッチングする。
x|yxかyをマッチングする。
[xyz]xyzの中のいずれか1文字をマッチングする。
[^xyz]xyz以外のいずれか1文字をマッチングする。
[a-z]aからzまでのいずれか1文字をマッチングする。
[^a-z]aからz以外のいずれか1文字をマッチングする。
\b単語境界をマッチングする。
\B単語境界以外をマッチングする。
\d数字をマッチングする。
\D数字以外をマッチングする。
\s空白文字をマッチングする。
\S空白文字以外をマッチングする。
\w単語文字(アルファベット、数字、アンダースコア)をマッチングする。
\W単語文字以外をマッチングする。

タグ: javascript 正規表現 文字列処理

9月24日 12:52 投稿