概要
作業をしていると、依頼内容の中に正規表現を使わなければならない場合がある。
正規表現についてはいつも一生懸命ググってみるけど、難しい;;;
今日は正規表現の基本をいくつか書いてみようと思う。
正規表現
プログラミングで文字列を扱う時、文字列の一定のパターンを表現する一種の形式言語をいう。
プログラムを作成する際は特性上、一定のルールを持つテキスト文字列を使用する場合が多いが、このような時に正規表現式を使用する。
電話番号、httpアドレス、メールアドレスなどを取るレシピは数え切れないほど散在しているが、いざ私が必要とする部分ではきちんとレシピを書いたと思うにもかかわらず、望む以上の結果を返す場合が非常に多いが、これを克服するためには正規式規則を几帳面に読んでみて直接怪我をして適用して確認した方が良い。
代表的な特殊文字
表現 | 説明 |
---|---|
. | 改行文字(\n)を除く任意の一文字を意味する。 |
? | 該当文字パターンが0回または1回だけ繰り返される。 |
* | 該当文字パターンが0回以上繰り返される。 |
+ | 該当文字パターンが1回以上繰り返される。 |
{...} | 繰り返される回数を指定する。 |
^ | 文字列の最初を意味する。 |
$ | 文字列の終わりを意味する |
\ | 特殊文字を無視。 |
| | 選択を意味する。(OR) |
(...) | グループ化の始まりと終わりを意味する。 |
代表的な特殊文字を使った正規表現
-
/.ap/
文字列ap
の前に任意の一文字が登場する文字列 (aap, bap, cap, @ap, #ap)、 -
/a?b/
bの前にaが0番または1番登場する文字列(b、ab) -
/a*b/
bの前にaが0回以上登場する文字列(b、ab、aab、aaab) -
/a+b/
bの前にaが1回以上登場する文字列(ab、aab、aaab、aaab) -
/a{2,4}b/
bの前にaが2回以上4回以下登場する文字列(aab、aaab、aaab) -
/a{2,}b/
bの前にaが2回以上登場する文字列(aab, aaab, aaaab, aaaaab) -
/^abc/
abcで始まる文字列 (abc、abcd、abcdef) -
/abc$/
abcで終わる文字列 (abc、zabc、xyzabc)
まず、簡単な正規表現の例を見せた。
次はもう少し難しい表現や例題を記述する予定だ。