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

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

正規表現

正規表現での実例パート1

1. Java Integer の変数名を含む行にマッチさせる src 内にあるすべてのファイルを検索させている。 $ egrep -hr 'p(rivate|ublic|rotect) +Integer +[a-zA-Z_0-9]+' src private Integer speed; private Integer speed; public Integer generateNumber() { …

重複 typo を正規表現の後方参照でチェック

以下のように、不要な重複が含まれるテキスト (typo.txt) があるとする。 A typo is a mistake made in the typing process. A typo typo is a mistake made in the typing process. A typo is a a mistake made in the typing process. A typo is a mistake…

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

以下の3行が含まれるテキスト hr.txt があるとする。 # hr.txt <HR SIZE=16> <HR SIZE=16 > <HR SIZE=8> <HR> &ltHR SIZE=16> にマッチさせるには? HRとSIZEの間に1つ分の空白スペースを設けるために、+ を使う。 $ egrep -i '<HR +SIZE=16>' hr.txt <HR SIZE=16> &ltHR SIZE=16 > にもマッチさせるには? 16の後に0個以上の空</hr></hr></hr></hr></hr></hr>…

正規表現で単語でマッチ

以下のようなテキストがあった場合。 My name is blue. I like mystery.普通に "my" でマッチさせようとすると、"My" と "mystery" がマッチする。 egrep -i 'my' words.txtもし、”My" だけをマッチさせたい場合は、\ と \> のメタ文字が使える。 egrep -i '\<my\></my\>…

正規表現を使うなら、ターゲットテキストをよく理解する

2019年11月15日を表現する場合、以下のように色々なパターンが考えられる。file.txt 2019/11/15 2019-11-15 2019 11/15これらを含む行を正規表現で検索するとなった場合、どのような方法があるか。 $ egrep '2019[-/" "]11[-/" "]14' file.txt 2019/…

正規表現の解釈について

文字どおりに解釈する習慣を身につけるべきらしい 以下の正規表現を見てみると ^cat”行頭が cat の行にマッチする”と解釈できる。ただ、文字どおりに解釈すると”行頭がある場合、その次が c その次が a その次が t になっている行にマッチする” となる。では…

正規表現で1文字の行にマッチさせる

ある任意の1文字は . で表現される。 ただこれだけでは、複数の文字列(例えば ABC など)もマッチされてしまう。 1文字だけの行を抽出したい場合は、 ^.$ と書けばよい。 ある任意の1文字から始まり、ある任意の1文字で終わる文字という意味になるので それ…