JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScript正規表現で指定した文字セット内の任意の1文字に一致させる方法

文字セットを使った任意の1文字との一致

JavaScriptの正規表現(RegExp)では、[ ](角括弧)で囲んだ文字セットを指定することで、その中の任意の1文字と一致させることができます。例えば、[aeiou]は「a、e、i、o、u」のいずれか1文字にマッチするメタキャラクタです。

このパターンは、文字列の中から特定の文字だけを抜き出したり、母音や特定の記号が含まれているかを判定したりする際に非常に便利です。

使用例

以下のサンプルコードでは、文字列 "Welcome to our website!" の中から「w」「e」のいずれかに該当する文字をすべて抽出しています。フラグ g を付けることで、最初の一致だけでなく、文字列全体からすべての一致箇所を検索できます。

<html>
   <head>
      <title>JavaScript Regular Expression</title>
   </head>
   <body>
      <script>
         var myStr = "Welcome to our website!";
         var reg = /[we]/g;
         var match = myStr.match(reg);
         
         document.write(match);
      </script>
   </body>
</html>

実行結果

e,e,o,e,e,e,e

上記のように、match() メソッドは一致したすべての文字を配列として返します。大文字小文字も区別されるため、「W」にはマッチせず、小文字の「e」のみが抽出されている点に注意してください。

ポイントまとめ

  • [abc]:a、b、cのいずれか1文字に一致
  • [a-z]:小文字アルファベット全般に一致(範囲指定)
  • [^abc]:a、b、c以外の任意の1文字に一致(否定セット)

文字セットを活用すれば、柔軟かつ簡潔なパターンマッチングを実現できます。

  1. C#で再帰呼び出しを使って任意の数の累乗を効率的に求める方法

    この記事では、C#を使用して再帰呼び出し(バックトラッキング)によって任意の数の累乗を計算する方法を解説します。アルゴリズムの考え方まず、基数 x と指数 n を引数に取る FindPower 関数を作成します。ここでは x = 2、n = 累乗する回数とします。処理の流れは以下の通りです。n が 0 になったら 1 を返す(再帰の終了条件)n を半分にして再帰的に自分自身を呼び出すn が偶数の場合:result × result を返すn が奇数の場合:x × result × result を返すこの手法では、毎回 x を掛ける代わりに結果を二乗しながら再帰を進めるため、通常のループによる

  2. C#で文字列内の特定の文字までの最長距離を求める方法を解説

    文字列の中に含まれる特定の文字に対して、各位置からその文字までの最長距離を求める問題は、左右両方向からの走査を組み合わせることで効率的に解くことができます。本記事では、C#を用いた具体的な実装方法と、その仕組みをわかりやすく解説します。 アルゴリズムの基本的な考え方 この問題を解く鍵となるのは、leftDis と rightDis という役割の異なる2つの配列を用意することです。 leftDis … 右から左へ走査したときの距離の値を格納する配列 rightDis … 左から右へ走査したときの距離の値を格納する配列 走査の途中で対象の文字に出会ったら、その位置の値を配列に記録し、カウントを