正規表現は、コードに直接書いてから試すと修正のたびに手間がかかります。
先にサンプルテキストでパターンを検証しておくと、実装後の細かい手戻りを減らせます。

こんな場面で使う

たとえば、ログからリクエストIDだけを取り出したいとします。

2026-05-17T10:15:31Z INFO request_id=req_8f3a2 user_id=42 status=200
2026-05-17T10:15:32Z ERROR request_id=req_91bc0 user_id=42 status=500

Regex ツールで次のようなパターンを試します。

request_id=(req_[a-z0-9]+)

マッチ結果を見ながら、必要な部分だけをキャプチャできているか確認します。

抽出後にコードへ移す場合は、どのグループを使うかまでメモしておくと安全です。

const match = line.match(/request_id=(req_[a-z0-9]+)/);
const requestId = match?.[1];

ツール上で req_8f3a2 だけが取れていることを確認してから実装すると、request_id= まで含めて保存してしまうような小さなミスを防げます。

実装前に見るポイント

最初から完璧な正規表現を書こうとせず、実データに近いサンプルを数行用意します。
成功するケースだけでなく、マッチしてほしくないケースも入れておくと安全です。

request_id=req_8f3a2
request_id=
request=req_999
request_id=REQ_ABC

大文字小文字、空文字、似たキー名を混ぜておくと、想定外のマッチに気づけます。

実例:メールアドレスのマスク処理を確認する

問い合わせログを共有するとき、メールアドレスだけをマスクしたい場面があります。

user=alice@example.com action=login
note=notify bob@example.org tomorrow
invalid=user@example

まずは対象を広く取りすぎないパターンを試します。

\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b

置換後のイメージは次のようになります。

user=[email] action=login
note=notify [email] tomorrow
invalid=user@example

invalid=user@example が置換されないこと、文中のメールアドレスは置換されることを確認してからコードに入れると、ログ共有時の伏せ漏れや過剰な置換を減らせます。

置換前の確認にも使える

フォーム入力の整形やログのマスク処理では、置換対象が広すぎると事故につながります。
本番コードに入れる前に、どの範囲がマッチするかをツール上で確認しておくのがおすすめです。

チームレビューで残しておくとよい情報

正規表現はあとから読む人に意図が伝わりにくいので、サンプル入力、期待するマッチ、マッチしてほしくない例を短く残しておくとレビューが楽になります。

OK: request_id=req_8f3a2
NG: request=req_8f3a2
NG: request_id=

この3行があるだけでも、将来パターンを変更するときに「どこまで許容する正規表現なのか」が分かります。

関連ツール