← 資料室 RESOURCE
初心者が陥りがちな正規表現の間違い5つとその解決法。

第一に、ドット(.)をエスケープしない間違いです。ドットは正規表現で「任意の1文字」を意味するため、実際のピリオドを探すには \. と書く必要があります。例えばファイル拡張子 .txt を探すとき \.txt と書かないと、xtxt のようなものまで捕捉されてしまいます。

第二に、貪欲マッチで捕捉しすぎる間違いです。<.*> は最初の < から最後の > まで飲み込んでしまいます。タグを一つずつ捕捉するには、怠惰な <.*?> または否定文字クラス <[^>]*> を使います。

第三に、アンカーを抜かす間違いです。文字列全体が形式に合っているかを検証するには、^ と $ で両端を固定する必要があります。アンカーがないと文字列の一部だけ合っても通過してしまい、パスワードやIDの検証が破られます。

第四に、角括弧の中で特殊文字を過剰にエスケープすることです。文字クラス [] の中ではほとんどのメタ文字がそのまま文字として扱われるため、[.+*] は3つの記号そのものを意味します。ただし ] ^ - \ は位置に注意が必要です。

第五に、フラグを忘れる間違いです。すべての一致を探すには g、大文字小文字を無視するには i、複数行で ^・$ を各行に適用するには m が必要です。結果が1つしか出ないなら、まず g フラグを確認してください。