正規表現テスト

正規表現を試して、一致したところに色を付けます。グループの中身や置換の結果もすぐに見られます。

正規表現と文章

フラグ

0文字・0行

結果

結果の見せ方

正規表現と文章を入れると、一致したところに色が付きます。

処理はこの端末の中で行われ、入れた文字はどこにも送られません。

JavaScript(ブラウザ)の正規表現で動きます。Python・PHP・Java などとは、使える書き方が少し違うことがあります。

役に立ったら、シェアしてもらえるとうれしいです

うまく動かないときや、「こうだったらいいのに」があれば

使い方

  1. 1. 正規表現を入れる

    「正規表現」の欄に、探したい形を打ち込みます。\d や [ ] のような打ちにくい記号は、欄の下の記号のボタンをタップすると、カーソルの位置に入ります。「よく使う書き方から選ぶ」で、メールアドレスや日付などの形を選んでもかまいません。欄の右上の「意味」をタップすると、部品ごとに何に一致するかが並びます。

  2. 2. 文章を入れる

    下の「調べる文章」に、探す相手の文章を貼り付けるか打ち込みます(「見本」をタップすると見本の文章が入ります)。入れるとすぐに、その下の「結果」で一致したところに色が付き、一致した数が出ます。

  3. 3. フラグを切り替えて、一致の一覧を見る

    「フラグ」の「g すべて」をオフにすると、最初の1つだけを探します(オンに戻すと、すべて探します)。下の「一致の一覧」には、一致ごとの位置とグループ($1・<year> など)の中身が並びます。行をタップすると、上の文章のその場所が選ばれます。

  4. 4. 一致した部分だけを取り出す

    「結果」の上で「取り出す」を選ぶと、一致した部分だけが1行に1つずつ並びます。グループがあるときは、「一致した全体」の選択欄で <year> などのグループだけを選べます。「重複を除く」をオンにすると同じものは1つにまとまり、「取り出した結果をコピー」でコピー、「テキストで保存」でファイルに保存します。

  5. 5. 置換を試して、コピーする

    「結果」の上で「置換」を選び、「置き換える文字」に $<day>/$<month>/$<year> のように打ち込むと、置き換えた文章がすぐに出ます。「置換の結果をコピー」をタップすると、その文章をコピーします。

こんなときにおすすめ

  • 書いた正規表現が合っているか確かめたい

    プログラムに入れる前に、ねらった文字だけに一致するか、余計なところまで一致していないかを、色でひと目で確かめられます。できたら、Python・PHP・Go などの言語を選んで、そのままコードに貼れる形でコピーできます。

    Webエンジニア・プログラミングを学んでいる人

  • 人が書いた正規表現を読みたい

    引き継いだコードや記事にある正規表現を貼り付けて「意味」を押すと、「数字1文字を4回」のように、部品ごとに何に一致するかが短い言葉で並びます。

    コードを読む人・プログラミングを学んでいる人

  • ログや表から、決まった形の文字を抜き出したい

    メールアドレス・日付・注文番号などを探して、「取り出す」で1行に1つずつ並べ、コピーしたり、テキストのファイルに保存したりできます。

    データを集計する人・サポートの担当者

  • グループの部分だけを、重複なく集めたい

    メールアドレスのドメインや URL のホスト名のように、( ) で囲んだ部分だけを取り出せます。「重複を除く」をオンにすれば、同じものが何度も出てくる一覧も1つずつにまとまります。

    データを集計する人・Webの担当者

  • まとめて書き換える前に、置換を試したい

    エディタやスプレッドシートで一括置換する前に、$1 などを使った置き換えの結果を確かめられます。

    文章や表を整える人

  • フォームの入力チェックを作りたい

    郵便番号や電話番号の形をチェックする正規表現を、いろいろな入力で試しながら作れます。

    フォームを作る人

使う前に知っておきたいこと

  • JavaScript の正規表現で動きます。Python・PHP・Java・.NET だけにある書き方(所有量指定子 ++ や (?i) など)は使えません。
  • ほかの言語の形でコピーするときは、書き方の違うところを直せる範囲で直します。直せないもの(Go の後読みなど)は一言知らせるので、その言語でも試してください。
  • 時間がかかりすぎる正規表現は、2秒で止めて知らせます。止まったときは、くり返しの重なりを減らしてください。
  • 一致の一覧に出すのは最初の300件、色を付けて取り出すのは最初の5,000件までです(数は最後まで数えます)。

正規表現のテストについて

正規表現は、「数字が4つ続く」「@ をはさんだ英数字」のような文字の形を、\d{4} や [\w.]+@[\w.]+ のような短い記号で書く方法です。検索・置換・入力チェックなど、多くのプログラムやエディタで使われていますが、少し書き間違えるだけで、ねらいと違うところに一致してしまいます。

このツールは、打つたびにブラウザの JavaScript の正規表現でその場で調べ、一致したところに色を付けます。グループ(( ) で囲んだ部分)や名前付きグループ((?<名前>…))の中身も一致ごとに並べるので、取り出したい部分が正しく取れているかを確かめられます。(a+)+ のような計算が終わらない書き方でも、画面が止まらないよう、別の流れの中で時間を決めて調べます。

フラグのちがい
オンにするとよく使う場面
g(すべて)一致するところをすべて探す抜き出し・すべて置換
i(大小を区別しない)A と a を同じ文字として探す英単語の検索
m(行ごと)^ と $ が行の始まりと終わりに一致行ごとのチェック・ログ
s(. が改行にも). が改行にも一致する何行にもまたがる部分
u(Unicode)絵文字を1文字として扱い、\p{…} が使える漢字・絵文字を含む文章

よくある質問

正規表現のテストで、迷いやすいことをまとめました。

入れた文章や正規表現は、どこかに送られますか?

送られません。調べる処理はすべてお使いの端末のブラウザの中で行われ、入れた文章や正規表現がサーバーに送られたり、保存されたりすることはありません。社内のログや個人情報を含む文章でも使えます。

どの言語の正規表現で動きますか?

JavaScript(ブラウザの RegExp)の正規表現です。名前付きグループ (?<名前>…)、後読み (?<=…)、\p{…}(u フラグ)なども使えます。Python・PHP・Java などとは細かな書き方が違うことがあるので、ほかの言語で使うときは、その言語の説明も確かめてください。

Python や PHP のコードに使えますか?

はい。「正規表現」の欄の右上で、JavaScript・Python・PHP・Java・Ruby・Go から言語を選んでコピーのボタンを押すと、その言語のコードの形でコピーします。Python の (?P<名前>…)、Ruby の \A・\z、Go の (?i) のように、書き方の違うところは直します。Go の後読みのように、その言語では書けないものは、欄の下に一言出します。選んだ言語は、次に開いたときも残ります。

「/abc/gi」の形で貼り付けられますか?

はい。「正規表現」の欄が空のときに /abc/gi の形で貼り付けると、正規表現の部分とフラグに分けて入ります。逆に、欄の右上で「JavaScript」を選んでコピーのボタンを押すと、今の正規表現を /…/ の形でコピーし、JavaScript のコードにそのまま貼れます。

正規表現の意味を確かめられますか?

「正規表現」の欄の右上の「意味」を押すと、正規表現を部品に分けて、「数字1文字を4回」「名前 year のグループ」のように、1つずつ何に一致するかを並べます。グループの中は字下げして並ぶので、かっこの組み合わせも確かめられます。

一致した部分だけを一覧にできますか?

「取り出す」を選ぶと、一致した部分が1行に1つずつ並びます。グループがあるときは、その部分($1・<名前>)だけも選べます。「重複を除く」で同じものを1つにまとめ、コピーしたり、テキストのファイルに保存したりできます。フラグの g がオフのときは、最初の1つだけです。

グループの中身はどこで見られますか?

右の「一致の一覧」に、一致ごとに $1・$2 …(名前付きグループは <名前>)の中身が並びます。一致しなかったグループは「(一致なし)」と出ます。

置換で使える書き方は?

「置換」を選ぶと、「置き換える文字」に $1・$2 …(グループ)、$<名前>(名前付きグループ)、$&(一致した全体)、$$($ そのもの)が使えます。フラグの g がオンならすべて、オフなら最初の1つだけを置き換えます。

「時間がかかりすぎるため、止めました」と出ました

(a+)+ や (.*)* のように、くり返しの中にくり返しがある正規表現は、一致しない文章で計算の量が爆発的に増えることがあります(バックトラックの爆発)。画面が止まらないよう、2秒で止めています。くり返しを1つにまとめるか、.* の代わりに [^,]* のように一致する文字を絞ってください。

大文字と小文字を区別せずに探すには?

「フラグ」の「i 大小を区別しない」をオンにします。A と a、A と a のように、大文字と小文字を同じ文字として探します(全角と半角は別の文字のままです)。

^ や $ が行ごとに一致しません

^ と $ は、最初は文章全体の始まりと終わりにだけ一致します。行ごとに一致させるには、「フラグ」の「m 行ごと」をオンにします。

ひらがなや漢字を探せますか?

はい。「よく使う書き方から選ぶ」に、ひらがな・カタカナ・漢字・全角の文字があります。漢字の \p{Script=Han} には u フラグが要るので、選ぶと u も自動でオンになります。

無料で使えますか?

はい、無料です。登録やインストールは要らず、広告もありません。何度でも、文章の長さを気にせずに使えます。

  • 全角・半角を変換

    英数字やカタカナの全角と半角を、まとめて変換します。

  • ひらがな⇔カタカナ変換

    ひらがな・カタカナ・半角カナを、まとめて変換します。漢字や英数字はそのまま残します。

  • SNSの文字数チェック(X・Instagram・YouTube)

    X・Instagram・YouTubeなどの上限まであと何文字かを、SNSごとの数え方で数えます。文字数・行数・原稿用紙の枚数も。

  • JSON整形

    JSONを読みやすく整えたり、1行に詰めたりします。間違いがあれば場所を示します。

  • URLエンコード・デコード

    日本語や記号をURLで使える形(%E3%81%82など)にエンコードしたり、元の文字に戻したりします。

  • パスワード生成

    長さと使う文字を選んで、推測されにくいパスワードをその場で作ります。