【JavaScript正規表現】特定の文字を0回または1回含む文字列にマッチさせる方法(?量指定子の使い方)
JavaScriptの正規表現(RegExp)で、ある文字を0回または1回だけ含む任意の文字列にマッチさせたい場合は、量指定子「?」を使用します。たとえば「p?」と記述すると、「p」があってもなくてもマッチするパターンになります。
サンプルコード
以下のコードでは、正規表現「/10?/g」を使って、文字列中の「1」および「10」(「0」が0回または1回続く部分)にマッチさせています。「?」は直前の文字が0回または1回出現することを意味します。
<html>
<head>
<title>JavaScript 正規表現</title>
</head>
<body>
<script>
var myStr = "Welcome 1, 100, 10000, 10000";
var reg = /10?/g;
var match = myStr.match(reg);
document.write(match);
</script>
</body>
</html>実行結果
1,10,10,10
このように「?」量指定子を使うことで、直前の文字が存在してもしなくてもよい柔軟なパターンマッチングが可能になります。同様の考え方で「p?」とすれば、「p」を1つまでしか含まない文字列にマッチさせることができます。
-
Pythonの正規表現で小文字の母音をマッチさせて抽出する方法
Pythonでは、標準ライブラリのreモジュールを使うことで、正規表現による柔軟な文字列操作が可能です。文字列の中から小文字の母音(a・e・i・o・u)だけを取り出したい場合は、文字クラス[aeiou]を利用するのが最もシンプルで効率的な方法です。 サンプルコード import re foo = AefuToiJnmna match = re.findall(r[aeiou], foo) print(match) 実行結果 このコードを実行すると、次のような出力が得られます。 [e, u, o, i, a] コードの解説 文字クラス [aeiou] は、角括弧の中に並べた文字のうち「い
-
Pythonで複数の文字列のいずれかが別の文字列に含まれているか判定する方法
Pythonでは、リスト内の複数の文字列のうち、どれか1つでも別の文字列に含まれているかどうかを調べたい場面がよくあります。そんなときに便利なのが、組み込み関数 any() を使った方法です。 any() 関数を使う基本的な方法 any() は、引数に渡したイテラブルの中に真と評価される要素が1つでもあれば True を返します。ジェネレータ式と組み合わせることで、各文字列が対象の文字列に含まれているかを簡潔に判定できます。 例 arr = [a, e, i, o, u] text = hello people if any(c in text for c in arr):