tech::hexagram

personal note for technical issue.

正規表現メモ

就活が伸びて3月下旬が割とまとまった時間がとれているので,個人的に勉強してたりします.

現在取り組んでいるのは

です.今日はperlについて書いてみようと思います.
正規表現について結構ごちゃごちゃしてるのでメモ.

マッチ演算子

文字列を検索するのに使う.主なものとしては,

/[string]/
m|[string]|
m#[string]#

があります.
※[string]は文字列の意.以下同様.

位置指定

先頭は^,末尾は$です.

<例>
/^hoge/:hogeで始まる文字列
/hoge$/:hogeで終わる文字列

文字クラス

文字列をまとめたものを文字クラスといいます.主に,[]で囲って表記する場合と,\~という形で表記するものがあります.
後者の場合,\+アルファベット1文字で表すことが多く,小文字があるまとまり,大文字がその否定,という形になっています.

文字列例 意味
[0-9] 数字
\d/\D 数字/数字以外
[a-z] 任意の小文字
\w/\W 英数字/英数字以外
\s/\S 空白文字/空白文字以外
\b 単語境界
. 任意の1文字

繰り返し

同じものを何回か繰り返す場合は,繰り返し記号で短くできます.

記号例 意味
[string]* 0回以上の繰り返し
[string]+ 1回以上の繰り返し=[string][string]*
[string]? 0or1回
[string]{5} 5回繰り返し
[string]{3,5} 3回以上5回以下の繰り返し

[string]が複数文字の場合は,()で区切ります.

<例>
(po){4}n=popopopon(ぽぽぽぽーん)

その他の正規表現

意味
[string]|[string]' [string]か[string]'
/[string]/i [string]の大文字小文字を無視
/\Q[string]\E/ 正規表現的に意味のある文字を検索


今日勉強したことはざっとこんな感じです.