正規表現テスター
パターンを入れると、文章の中の一致した場所がその場で色付きになり、捕獲グループも一つずつ取り出されます。一致した文字列を並べるだけでは、それが文章のどこだったのかが分からないので、両方を出しています。
2件一致
連絡先は hong@example.com か kim@test.co.kr です。
- 5 hong@example.com1=hong 2=example.com
- 24 kim@test.co1=kim 2=test.co
JavaScript の正規表現です。Python や Java とは細かいところで違うので、移すときはもう一度お確かめください。
パターンの書き方
スラッシュなしで中身だけを書きます。/\d+/g ではなく \d+ です。コードの文字列に入れるために \\d と二重に書いたものも、ここでは一重で済みます — 二重に書くとバックスラッシュの文字そのものを探します。入力のたびにすぐ走るので押すものはなく、文法が違えばブラウザのエンジンのエラー文がそのまま出ます。
五つのフラグ
i は大文字小文字を区別せず、m は ^・$ を行ごとに合わせます。s は . が改行にも一致するようにし、u は絵文字のような四バイトの文字を一文字として数えます。g は入り切りに関係なく、常に入った状態で走ります — 一覧を出すには全部を探す必要があるからです。
グループと結果の一覧
結果ごとに開始位置、一致した文字列、グループが出ます。番号付きグループは 1=… として、名前付きグループ (?<year>…) は番号で一度、名前で一度の二度出ます。一致しなかった任意のグループは — です。色付けは 500 個まで行い、一覧は先頭の 50 個だけを見せます。空文字列に一致するパターン(a*)は各位置で一度ずつ一致し、文字数ぶんの結果が出ます — その場合は a+ のように最低一つを要求してください。
よくある質問
パターンでブラウザが固まることはありますか
(a+)+b のように繰り返しが入れ子になったパターンは、長い文章に当てるとバックトラックが爆発してタブが応答しなくなります。この画面の2秒制限は一致と一致の間でしか確かめないので、一致を多く出すパターンはそこで止まりますが、一つの一致の中で爆発するパターンは止められません。入れ子の繰り返しは当てる前に書き直してください — それが唯一の防ぎ方です。
Pythonでも同じように動きますか
これはJavaScriptのエンジンです。後読みの対応や名前付きグループの書き方が言語ごとに少しずつ違うので、移すときは向こう側でもお確かめください。
どの方言ですか
JavaScriptの正規表現 です。PythonやJavaと違うところがあります — 名前付きグループの書き方や後読みの対応などです。別の言語で使うパターンなら、そちらでも確かめてください。
最初の一つしか色が付きません
この画面は一致をいつもすべて探します。グローバルフラグ(g)は切り替えに関係なく付けて動かすので、一つにしか色が付かないなら実際に一つしか一致していません。語の途中で切れるように見えるなら、境界(\b)や前後の文字を見直してください。大文字小文字を無視するには i を使います。
メールアドレスを検査する正規表現は何を使えばいいですか
完全なものはなく、使えもしません。RFC 5322 をすべて含めると数千文字になり、それでも実際に受け付けられるアドレスとは違います。^[^\s@]+@[^\s@]+\.[^\s@]+$ くらいで「@ が一つ、点のあるドメイン」だけを見て、本当の確認はメールを送って行ってください。
日本語だけを探すには
[ぁ-ん] がひらがな、[ァ-ン] がカタカナ、[一-龯] が常用の漢字の範囲です。u フラグを入れると \p{Script=Hiragana}・\p{Script=Katakana}・\p{Script=Han} で書け、範囲を暗記せずに済みます。
貼り付けたものはサーバへ送られますか
送られません。すべてブラウザの中で動き、送信も保存もしません。だからこそ、ふつうならウェブページに貼り付けない社内の設定ファイルや本番のクエリにも使えます。通信を切ったままでも動きます。