社内se × プログラマ × ビッグデータ

プログラミングなどITに興味があります。

正規表現 HTML <HR> を例にいろいろマッチ

以下の3行が含まれるテキスト hr.txt があるとする。

# hr.txt
<HR SIZE=16>
<HR SIZE=16 >
<HR SIZE=8>
<HR>
<HR SIZE=16> にマッチさせるには?

HRとSIZEの間に1つ分の空白スペースを設けるために、+ を使う。

$ egrep -i '<HR +SIZE=16>' hr.txt
<HR SIZE=16>
<HR SIZE=16 > にもマッチさせるには?

16の後に0個以上の空白スペースを設けるために、* を使う。

$ egrep -i '<HR +SIZE=16> *' hr.txt
<HR SIZE=16>
<HR SIZE=16 >
<HR SIZE=8> にもマッチさせるには?

1桁以上の数値にマッチさせるため、[0-9]+ を使う。

$ egrep -i '<HR +SIZE=[0-9]+ *>' hr.txt
<HR SIZE=16>
<HR SIZE=16 >
<HR SIZE=8>
<HR> にもマッチさせるには?

<HR> 以外の部分については、オプション扱いにするため、()? を使う。

$ egrep -i '<HR( +SIZE=[0-9]+ *)?>' hr.txt
<HR SIZE=16>
<HR SIZE=16 >
<HR SIZE=8>
<HR>