スプレッドシートRE2正規表現チェックと式生成
Googleスプレッドシートの RE2 相当パターンを静的チェックし、REGEXMATCH / REGEXEXTRACT / REGEXREPLACE の式を生成できる無料ツールです。lookaround や backreference などハマりやすい記法を事前警告し、コピペ用の式をブラウザ内で作成できます。
何ができるか
スプレッドシートの正規表現で詰まりやすい記法を静的チェックし、式を安全に組み立てます。
RE2の完全実行テスターではなく、禁止・非推奨パターンの早期検知と式生成に特化したツールです。
例: A2 / $B$3 / 'Sheet 1'!C4
文字列直埋め込みを選んだ場合は式生成に使用されます。セル参照モードではサンプル確認用として使えます。
Lint結果: OK
現在のパターンでは、代表的な非対応記法は検知されませんでした。
ダブルクォート(")はスプレッドシート式用に "" へエスケープして出力します。
よく使うテンプレ
入力データは原則ブラウザ内で処理します。機密情報は入力しないでください。
使い方
- 生成したい関数(REGEXMATCH / REGEXEXTRACT / REGEXREPLACE)を選びます。
- 対象文字列の指定方法を選択し、セル参照または文字列を入力します。
- 正規表現パターンを入力し、必要なら置換文字列を設定します。
- 「式を生成」を押して、Lint警告と生成式を確認します。
- 問題なければ「式をコピー」でスプレッドシートへ貼り付けます。
判断基準
まず抽出か判定か置換かを先に決め、その関数に必要な最小パターンから組み立てると安定します。RE2制約があるため、複雑化より分割処理が基本です。
よくある失敗
- JavaScriptで動いたlookbehindをそのまま貼り、シート側で失敗する。
- 文字列直埋め込みでダブルクォートを未エスケープにして式エラーになる。
- REGEXEXTRACTで複数候補を期待し、最初の一致のみ返る仕様を見落とす。
境界条件
- 本ツールは静的Lintであり、スプレッドシート実行結果を完全再現するエンジンではありません。
- 一般的には関数挙動が更新される可能性があるため、運用時は公式ヘルプとの突合が必要です。
- 巨大データでの計算負荷評価までは行わないため、実シートでの再計測を推奨します。
具体例
- 入力: 関数=REGEXEXTRACT、セル=A2、パターン=`[\\w.+-]+@[\\w.-]+\\.[A-Za-z]{2,}`。出力: メールアドレス抽出式を生成。
- 入力: 関数=REGEXEXTRACT、セル=A2、パターン=`\\d+`。出力: 最初の数字列を抽出する式を生成。
- 入力: 関数=REGEXREPLACE、セル=A2、パターン=`[^0-9]`、置換=`""`。出力: 数字以外を除去する式を生成。
RE2でハマりやすいポイント(折りたたみ)
- lookaround や backreference など、PCRE/JavaScriptで動く記法が非対応な場合があります。
- 複雑な1本の式より、抽出と判定を分割したほうが再現性が高くなります。
- セル参照のほうが式の可読性と再利用性が高く、直埋め込みは一時検証向けです。
注意・免責
- このツールは RE2 の完全互換テスターではなく、静的Lintと式生成を目的にしています。
- 一部の記法可否はスプレッドシート側の仕様変更で変わる可能性があります。
- 入力内容がURLクエリに含まれるため、共有時は公開してよい式や文字列のみ扱ってください。
関連用語
用語の意味は用語集でも確認できます(RE2 / lookbehind / backreference / キャプチャグループ)。
失敗しやすい式例
lookaroundを使う
RE2では未対応のため式が期待どおり動きません。
例: 入力例: (?<=abc)def / 出力: 非対応警告
backreferenceを前提にする
\1 などの参照はRE2では使えません。
例: 判断ポイント: キャプチャ再利用は別ロジックへ分離
境界値・例外ケース
関数ごとの引数差
REGEXREPLACEは置換文字列が必要で、他関数と引数構成が異なります。
例: 入力例: REGEXREPLACE時に置換値未指定 / 出力: 式不備
日本語/全角を含むパターン
文字クラス指定がASCII前提だと期待外れになります。
例: 判断ポイント: 対象文字集合を具体的に書く
よくあるミス
PCRE前提の知識で式を組む
RE2制約を踏まえないとシート上で再現しません。
例: 運用例: 先にチェック結果の非対応一覧を確認
生成式をテスト行なしで本番列へ貼る
想定外マッチが大量発生するリスクがあります。
例: 判断ポイント: 先に数行で検証してから全列適用
FAQ
スプレッドシートの正規表現は何が違いますか?
Googleスプレッドシートでは RE2 系の制約があり、PCREやJavaScriptで使える記法の一部が非対応です。このツールでは代表的な非対応候補を静的に警告します。
lookbehind が使えないのはなぜですか?
RE2 では可変長・複雑な後読みを含む一部構文を採用していないためです。必要な場合は抽出を段階化し、前処理と後処理に分ける運用を推奨します。
うまく抽出できない時のチェックポイントは?
1) パターンが空でないか、2) セル参照の指定が正しいか、3) キャプチャの括弧が閉じているか、4) 非対応構文の警告が出ていないかを順に確認してください。
セル参照と文字列直埋め込みはどちらが良いですか?
通常運用はセル参照がおすすめです。式が短く再利用しやすく、入力の更新にも追従しやすくなります。文字列直埋め込みは一時検証向けです。
LintがOKでも実行エラーになるのはなぜですか?
参照セルの中身や関数組み合わせ、シート側仕様差が影響するためです。最終的には実シートでの実行確認が必要です。
基本FAQ
入力データは外部へ送信されますか?
原則として送信されません。入力内容はブラウザ内で処理します。例外がある場合は各ツールページ内に明記しています。
入力内容は自動保存されますか?
原則として自動保存しません。コピーやダウンロードで保存する場合は、ご利用端末内に保存されます。
関連ツール
現在の入力内容とあわせて確認しやすいツールです。