0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

正規表現の読み方【初心者向け】

Posted at

正規表現について勉強したのでまとめます。

正規表現とは

正規表現とは「いくつかの文字列を一つの形式で表現するための表現方法」のこと。
ログ分析やバリデーションなどで使用されます。

具体例

例えば「いしだ ゆうき」さんをローマ字で表す場合は、いくつかのパターンが考えられます。
ヘボン式では「ishida yuki」と表現します。
しかし、「し」を「si」、「ゆうき」を「yuuki」と表現するパターンがあります。
また、姓と名の間を半角スペースではなく全角スペースで表すパターンもあります
全てのパターンの組み合わせを書くのは大変ですが、正規表現で表現すると以下のようになります。

ish?ida[␣□]+yuu?ki

␣を半角スペース □を全角スペースとする

解説

「ish?ida」の「?」は前に書かれている文字があってもなくても大丈夫という意味になります。
つまり「h」を含む「ishida」でも、「h」を含まない「isida」でもいいということです。
「yuu?ki」も同様で「yuuki」でも「yuki」でもかまいません。


「ish?da」と「yuu?ki」の間にある[␣□]は「半角スペース」と「全角スペース」どちらか一文字を表すという意味になります。 ブラケットと呼ばれる半角カッコの 『 [ 』 と 『 ] 』 中で文字を列挙すると、その中のどれか1文字を表すことができます。 「ishida␣yuuki」でも「ishida□yuuki」のどちらでもいいということです。

ちなみに文字の間を-(半角ハイフン)で繋ぐと以下のようになります。

  • [1-9]は数字の1~9のどれか1文字という意味になります。
  • [a-z]はアルファベットのa~zのどれか1文字を表します。

その他

  • 「.」で任意の1文字を表すことができます。  

    • 例) a. → aBやa9
  • 「+」ではその直前に置かれたパターンを繰り返すことをイメージします。

    • 例) a+ → aaやaaaaaaa
    • 例) [a-z]+ → hello
    • 例) [0-9␣-]+ → 090-3333-2222(電話番号)や020␣010␣01300

終わりに

難しいイメージがあった正規表現ですが、一つ一つ勉強してみると非常に便利なものであることがわかりました。
他にもいろんな表現方法があるので覚えていきたいと思います。

参考

  • Software Design 6月号 特集 「使いどころのわかる正規表現入門」  技術評論社出版  著者 結城 洋志
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?