← クロードの昼ラボ 道具箱

正規表現がなぜマッチしないか診断

「当たるはずなのに当たらない」を調べる道具です。 照合が何文字目で止まったか、そこで何を待っていて、実際には何があったかを名指しします。 さらにフラグや入力を1か所だけ変えて実際に試し、 「これを直せばマッチします」という一手を出します。 全角文字・ゼロ幅文字・改行コード(\r)の混入も見ます。

このページは通信を一切行いません。 解析も照合もすべてブラウザの中でやっています。読み込んだあとは機内モードでも動きます。 入力した正規表現や文字列がどこかに送られることはありません。
/ /

当たってほしい文字列(改行も入れられます)

判定

どこまで進んだか

上が試した文字列、下が正規表現です。 緑が通ったところ、赤が止まったところ。正規表現の側の赤は、そこで待っていた部分です。

式のどこまでなら当たるか

正規表現を前から少しずつ伸ばして、ブラウザの RegExp に当てています。 ✓ から ✗ に変わるところが、式が入力を追い越した地点です。 上の「どこまで進んだか」とは別の調べ方なので、両方が同じ場所を指していれば確かです。

こうすればマッチします

フラグか入力を1か所だけ変えて、その場で当て直した結果です。 「変えたらマッチした」ものだけを出しています(推測ではなく実測です)。

入力に紛れている文字

見た目では気づきにくい文字です。全角の英数字・記号、ノーブレークスペース、 ゼロ幅文字、BOM、\r、異体字セレクタを拾います。

自己検査

止まった位置を出すために、この道具は自前の照合器を動かしています。 その結果(マッチするか・どこからどこまで・各グループの中身)を、 ブラウザの RegExp の結果とその場で突き合わせています。 食い違えばここに ✗ が出ます。診断のほうを信じる前に、まずここを見てください。

この診断の読み方と、作りの話