触り始めたきっかけ
新卒の時の先輩に
「正規表現って知ってる?」
と聞かれ
私「知りません・・・・」
ちょうど使っていた秀丸の検索Boxで使えたので勉強し始めたのですが
今、意外とあまり周りで使わない(使う必要がない)エンジニアも多かったので
知ってた方が検索や置換に私が便利だと思う正規表現を紹介!
正規表現
a+
aが1文字以上続く
aaaaaa
ab+
aの後にbが1文字以上続く
abbbbb
ab*
aの後にbが0文字以上続く(aだけでも引っかかる)
a
ab
abbb
[0-9] もしくは[\d]
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で使うのが一番簡単なのでぜひやってみてください。