商店街のIT屋さんのポエム

お子様からご年配までITが苦手な人の役に立ちたい個人のポエム!

Qiita : これだけでも覚えたら便利な正規表現

触り始めたきっかけ

新卒の時の先輩に

正規表現って知ってる?」

と聞かれ

私「知りません・・・・」

ちょうど使っていた秀丸の検索Boxで使えたので勉強し始めたのですが

今、意外とあまり周りで使わない(使う必要がない)エンジニアも多かったので

知ってた方が検索や置換に私が便利だと思う正規表現を紹介!

正規表現

a+

aが1文字以上続く

aaaaaa

ab+

aの後にbが1文字以上続く

abbbbb

ab*

aの後にbが0文字以上続く(aだけでも引っかかる)

a
ab
abbb

[0-9]

0から9までの数字1文字

0
3
9

[a-z] か [A-Z]

aからz か AからZまでのアルファベット1文字

a
b
z

[179]

[]の中にある1文字

1
7

[^a]+

a以外のアルファベット1文字以上  a以外の文字が1文字以上

bbbbb
eeeee

[0-9,]+

0123456789,で構成された1文字以上

1,000
1,234,567

試してみたい

http://okumocchi.jp/php/re.php で //で挟んでチェックしてみてはどうでしょう。 実際にプログラムに実装する前にここでテストすることもよくあります。

/a+/ aaaabbb だと先頭から4文字のaaaaが引っかかる

気をつける事

正規表現を使えるようになってもあまり複雑すぎる 正規表現を書かない事。 複雑になり可読性も落ちる。 メールアドレスも全てのパターンを1つの正規表現でやろうとするととても複雑になるしメンテナンスやチェックが厳しくなる。

最後に知っておくこと

同じ「正規表現」と言えど環境により使える記述と使えない記述があります。 使いたい環境によって使える表現方法を知っておかないと特定の環境で動かなくてハマりますw

実際に仕事でこんな風に使いました。

  • csvデータの変換をしないといけない時に秀丸のマクロで正規表現の置換でデータ変換を行う
  • 置換を使ってログで必要な情報だけを出力する

実践

エディタで正規表現検索するかgrepで使うのが一番簡単なのでぜひやってみてください。