正規表現の自動生成と確認

JavaScriptファイル群から「空白文字列との比較」を行っている箇所を見つける、という要件がありました。

少し悩んでから、苦手な正規表現で頑張ろうと決意しました。

そんなとき、ふと、正規表現を自動生成できないものか、と思いました。

 

探してみると、以下のサイトが見つかりました。

正規表現じぇねれーた

早速、試してみました。

なお、今回「空白文字列との比較」を探すにあたり、見つける対象を以下のように定義してみました。

== ""
==""
== ''
==''
!= ""
!=""
!= ''
!=''

ほかにも、=== ""とか!== ""なんかの厳密比較もありますが、これらは上記のいずれかに該当しそうなので省略。

 

これらを、正規表現じぇねれーたに掛けてみると、以下の正規表現が自動生成されました。

(?:!=(?: (?:""|'')|""|'')|==(?: (?:""|'')|""|''))

 

よくわかんないですが、なんとなくそれっぽいです。

実際にエディタのGrep機能で試してみると、少なくとも抽出された結果は目的のものと合致しています。

逆に、抽出したいけど引っかからないものがあるかは現在も確認中ですが、正規表現を組む参考には充分なってくれそうです。

 

 

それと、生成した正規表現がどのような仕組みかを図解してくれるサイトもありました。

Regexper

これも、上記の生成された正規表現で試してみると、以下のような解析図を出力してくれました。

なお、デフォルトだと非常に小さな画像だったので拡大しています。

こうして確認すると、正しい正規表現なようです。

 

非常に苦手な正規表現ですが、この2つのサイトのお世話になりながら少しずつ勉強していこうと思います。