よく出てくる割に忘れる正規表現を簡単にまとめました。
正規表現の基礎基本はここでは省略しています。
基礎基本の勉強におすすめなサイト
https://www.tohoho-web.com/ex/regexp.html
https://www.secuavail.com/kb/practical-post/regex-introduction/
正規表現でよく出てくる記号たち
-
.
ドット - なんでも良い一文字 -
+
プラス - 一つ前のアイテムを1回以上繰り返す -
*
アスタリスク - 一つ前のアイテムを0回以上(0もアリ) 繰り返す -
?
クエスチョンマーク - 一つ前のアイテムが0もしくは1回出現する -
^
ハット - 文字列の先頭を表す -
$
ダラー - 文字列の終端を表す -
\
バックスラッシュ - エスケープ文字などと呼ばれ、正規表現で意味を持つ記号をそのまま文字として扱いたい場合にその記号の前におくことで、直後の記号を文字として扱うことができるようになる
正規表現にて定義されている特殊な表現
数字を表す文字や、空白を表す文字など単純にそれを判別するためということもあるが、その正規表現の狙いなど意図を反映させるときなどに用いるとよりよい気がする。
よく使うものたち↓
-
\d
- すべての半角数字
単純に数字を引きたいときは[0-9]
とするよりも\d
となっていた方がその意図がわかりやすい
[0-9]
だと条件次第では[0-8]
とかもあるかなと勘ぐってしまう -
\s
- 空白文字 これは可読性のために積極的に使った方がよいと感じる
否定先読み
これを知っているとよりいい感じの正規表現が作れる
(?!foo)
これで文字列foo
を含まないという条件で引っ掛けることができるようになります。
お役立ちの正規表現パターン
- 先方一致
^foo.*
- 後方一致
.*foo$
- fooかhoge
(foo|hoge)
- yamlとymlを両方引っ掛ける
ya?ml
- TenGigabitじゃないGigabitEthernetを引っ掛ける
(?!.*Ten)GigabitEthernet\d(\.\d)?