JavaScriptで数値のみに一致する正規表現の使い方
JavaScriptで文字列から数値(数字)だけを抽出したい場合、正規表現を使うのが最も簡単な方法です。本記事では、\d を使った基本的なパターンから、実用的なサンプルコードまでわかりやすく解説します。
数値に一致する正規表現の基本
半角数字1文字に一致する正規表現は /\d/ です。\d は「digit(数字)」を意味するメタ文字で、0〜9のいずれか1文字にマッチします。
さらに、末尾に g フラグ(グローバルフラグ)を付けると、文字列内のすべての数字に一致させることができます。フラグを付けない場合は、最初の1件しかマッチしないので注意してください。
サンプルコード
以下のコードは、文字列からすべての数字を抽出して表示する例です。
<html>
<head>
<title>JavaScript Regular Expressions</title>
</head>
<body>
<script>
var myStr = "5200% Demo";
var reg = /\d/g;
var match = myStr.match(reg);
document.write(match);
</script>
</body>
</html>
実行結果
5,2,0,0
コードの解説
/\d/g:数字1文字に一致するパターンです。gフラグにより、マッチするすべての箇所が対象になります。match():文字列に対して正規表現を適用し、マッチした部分を配列として返すメソッドです。グローバルフラグ付きの場合、マッチした文字列の配列が返されます。
この例では「5200% Demo」という文字列に対してパターンを適用しているため、「5」「2」「0」「0」がそれぞれ配列の要素として取得されます。
連続した数値として取得したい場合
上記の方法では数字が1文字ずつ分割されてしまいます。「5200」のように連続した数値をひとまとまりで取得したい場合は、量指定子 + を使います。
var myStr = "5200% Demo 123"; var reg = /\d+/g; var match = myStr.match(reg); document.write(match); // 5200,123
\d+ とすることで、「1文字以上の数字の並び」に一致し、数値ごとに抽出できます。
まとめ
- 数字1文字に一致させるには
/\d/を使用する。 - すべてのマッチを取得したい場合は
gフラグを付ける。 - 連続した数値を取得したい場合は
\d+を使う。
正規表現を活用すれば、フォームの入力チェックやログ解析など、さまざまな場面で数値の抽出・検証が簡単に行えます。ぜひ実際のコードで試してみてください。
-
JavaScriptの正規表現修飾子(g・i・m)をサンプルコード付きで解説
JavaScriptの正規表現修飾子とは JavaScriptの正規表現における修飾子(フラグ)とは、パターンリテラルの末尾に付加することで検索の挙動を変更できる、省略可能な指定のことです。これを使うことで、大文字と小文字を区別しない検索や文字列全体を対象としたグローバル検索などが簡単に実現できます。さらに、複数の修飾子を組み合わせて指定することも可能です。 主な修飾子の一覧 修飾子説明 gグローバルマッチングを有効にします。最初の一致で処理を止めず、マッチしたすべての結果を返します。 i大文字と小文字を区別しない(ignore case)マッチングを有効にします。 m複数行(mul
-
Pythonの正規表現を使って文字列から数字のみを抽出・マッチングする方法
Pythonでは、標準ライブラリの re モジュールを使うことで、正規表現によるパターンマッチングが簡単に行えます。文字列から「数字のみ」を取り出したい場合は、メタ文字 \d(任意の1桁の数字に一致)を使用します。ここでは、代表的な2つの方法——re.search() と re.findall() を使った例を紹介します。なお、コードはPython 3系の記法に準拠しています。例1:re.search() で最初に見つかった数字の並びを取得する次のコードは、指定した文字列の中から最初に出現する連続した数字(1桁以上)を検索し、マッチオブジェクトとして返します。import re m = re