通常さまざまな文字列に一致する正規表現を作成するのは人間の役割です。
効率良く分かりやすい正規表現を作成するのは難易度の高い作業になることもありますが、今回紹介する「grex」はこの面倒な作業を自動的に行ってくれる便利なツールです。
ユーザーが入力した文字列にマッチする正規表現を自動的に作成してくれる機能を持ち、現在以下のような特徴を持っています。
- リテラル
- 共通のプレフィックスとサフィックスの検出
- "|"による選択
- "?"による繰り返し
- 前者全ての連結
コンピューターエンジニアPeter M. Stahl氏によって作成されたRust製のツールで、JavaScriptで作られたregexgenをベースとしているそうですが、今後さらなる拡張を目指し開発を進めていくとのことです。
以下使用方法を説明します。
目次
grexの使用方法
GitHubのリリースページから、Linux/macOS/Windows版の実行ファイルをダウンロードし、中に含まれるgrexコマンドを取り出します。
grexで例えば複数の単語を指定すると、"|"で連結した正規表現が生成されます。
./grex hello world hello|world
IPアドレスを検索したい場合の正規表現も共通部分をまとめうまく作成してくれます。
./grex 192.168.0.1 192.168.0.255 192\.168\.0\.(255|1)
繰り返しを含む正規表現も生成可能です。
./grex a ab abc a(bc?)?
その他「grex -h」でヘルプを「grex -V」でバージョンを表示することができます。
まとめ
grexは記事執筆時バージョン0.1.0と開発の初期段階にあり、生成できる正規表現には限界があるようです。しかし今後順調に開発が続けられれば、正規表現ユーザー必携のツールになるかもしれません。