サンプルを入力するだけで正規表現を自動生成!「grex」完全ガイド

タグ GitHubオープンソースpemistahlgrex

このソフトで何ができる?

「grex」は、あなたが指定した文字列のサンプルをもとに、自動で正規表現を作ってくれるツールです。正規表現とは、メールアドレスや電話番号など、特定のパターンを持つ文字列を検索・チェックするための「パターン記述言語」のことです。これまで手書きで書くのが難しかった正規表現を、具体例を見せるだけで自動生成してくれるため、プログラミング初心者でも手軽に活用できます。

どんな人におすすめ?

プログラミング初心者・中級者には特におすすめです。正規表現は「学びたいけど難しい」と感じる人が多い分野ですが、grexを使えば「こういう文字列にマッチしてほしい」という例を並べるだけで答えが出ます。

具体的な使用シーンとしては、以下のようなケースが考えられます。

  • Webサービスの入力フォームで、メールアドレスや電話番号が正しい形式か確認したい
  • ログファイルの中から特定のパターンのエラー文を抽出したい
  • CSVやテキストデータを整形するスクリプトを書いている
  • 正規表現の勉強中で、「答え合わせ」として使いたい

プロのエンジニアにとっても、複雑なパターンをゼロから書く手間を省けるため、開発効率を上げる道具として便利に使えます。

インストール方法

grexはRust製のツールです。いくつかの方法でインストールできます。

Rustのパッケージマネージャー(cargo)を使う方法

Rustの開発環境が既に入っている場合は、以下のコマンド一発でインストールできます。

cargo install grex

バイナリを直接ダウンロードする方法

Rustを入れたくない場合は、GitHubのリリースページから自分のOS向けのファイルをダウンロードして解凍するだけで使えます。

  • Linux(64bit): grex-v1.4.6-x86_64-unknown-linux-musl.tar.gz
  • macOS(Apple Silicon): grex-v1.4.6-aarch64-apple-darwin.tar.gz
  • Windows(64bit): grex-v1.4.6-x86_64-pc-windows-msvc.zip

解凍後、実行ファイルをパスの通ったフォルダに置けば完了です。

Pythonから使う方法

Pythonユーザーはpipでインストールできます(Python 3.12以上が必要)。

pip install grex

基本的な使い方

コマンドラインでgrexを使う場合、マッチさせたい文字列を半角スペースで並べて渡すだけです。

メールアドレスのパターンを作る

grex [email protected] [email protected] [email protected]

出力例:

^[a-z]+@(?:example\.com|mysite\.co\.jp|test\.org)$

日付のパターンを作る

grex 2024-01-01 2024-12-31 2025-06-15

出力例:

^\d{4}-(?:0[16]|1[02])-(?:0[15]|3[01])$

数字を \d にまとめるオプション

-d オプションを付けると、数字の部分を \d(任意の数字)に置き換えてくれます。

grex -d 2024-01-01 2024-12-31 2025-06-15

出力例:

^\d{4}-\d{2}-\d{2}$

こちらの方が「4桁の数字、ハイフン、2桁の数字、ハイフン、2桁の数字」という意図が伝わりやすく、実際の用途にも合っています。

大文字・小文字を区別しないパターン

grex -i Hello hello HELLO

出力例:

^(?i)hello$

(?i) は「大文字・小文字を区別しない」という指定です。

活用アイデア

1. フォームのバリデーションに使う

ユーザーが入力した電話番号や郵便番号が正しい形式かチェックしたいとき、実際に使いそうな番号をいくつかgrexに渡すだけで、そのままコードに貼り付けられる正規表現が手に入ります。手書きで書いてテストして直して……という手間が大幅に省けます。

grex 090-1234-5678 080-9876-5432 070-0000-1111

2. ログ解析スクリプトの作成

サーバーのログファイルには決まったフォーマットのエラーメッセージが並んでいます。実際のログ行をいくつかコピーしてgrexに渡せば、同じパターンの行を一括で抽出するための正規表現がすぐに作れます。大量のログから必要な情報を絞り込む作業が格段に楽になります。

3. 正規表現の学習ツールとして使う

「なんとなく動く正規表現は書けるけど、理屈がわからない」という人にとって、grexは優れた学習ツールになります。自分で予想した正規表現とgrexが出した答えを比べることで、より効率的・正確な書き方を学べます。-d(数字を\dに)-w(単語文字を\wに)などのオプションを試しながら、正規表現の仕組みを体感的に理解できます。

4. データクレンジングに使う

CSVやJSONなど、外部から受け取ったデータを整形する処理を書くとき、実際のデータサンプルをgrexに渡して正規表現を作り、Pythonやシェルスクリプトのsedawkコマンドに組み込む使い方も便利です。

5. チーム開発でのレビュー補助

プルリクエストで「この正規表現、本当に正しい?」となったとき、対象となる文字列サンプルをgrexに渡して生成した結果と比較することで、レビューの根拠を示しやすくなります。

まとめ

grexは「正規表現を書くのが面倒・難しい」という悩みをシンプルに解決してくれるツールです。使い方は非常にシンプルで、マッチさせたい文字列のサンプルを並べて渡すだけ。オプションを組み合わせることで、より汎用性の高いパターンも生成できます。

インストールもcargo install grexpip install grexと一行で済み、環境を選ばず使えるのも魅力です。正規表現に苦手意識がある方も、ぜひ一度試してみてください。「サンプルを渡す→パターンが出る」という体験を繰り返すうちに、正規表現への理解も自然と深まっていくはずです。