10
9

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 5 years have passed since last update.

初心者の正規表現

Last updated at Posted at 2017-06-06

はじめに

この記事は正規表現全く分からない....という方をメインとしています。
"厳密にはそうじゃないんだけどなぁ"というのが有るかもしれませんが、正規表現の導入の部分なので多目に見ていただきたいと思います。

正規表現 とは

wikipediaを見ると

正規表現(せいきひょうげん、英: regular expression)とは、文字列の集合を一つの文字列で表現する方法の一つである。 正則表現(せいそくひょうげん)とも呼ばれ、形式言語理論の分野では比較的こちらの訳語の方が使われる。 まれに正規式と呼ばれることもある。
正規表現

と、書かれていますがよくわからないと思います。

簡単に言うと
効率よく検索出来る言語のようなものです。

正規表現で使用する特殊文字


.  \  ^   $   [   ]  (  )   *   +   ?   |   

正規表現を利用するためにこれらの__メタ文字__というものを使用します。

[ . ]なにか1文字

何らかの文字1文字だけ表現するときに " . " を使います。


これは . です。

これは__本__です。
これは__車__です。


これは ... です。

これは__コップ__です。
これは__マウス__です。

[ * ]直前の文字を0文字以上繰り返す

直前の文字を0文字以上繰り返すときに" * "を使います。
0文字以上なので直前の文字がなくてもいいのです。


あれはコー * ヒーですか?

あれは__コヒー__ですか?
あれは__コーヒー__ですか?
あれは__コーーーーーーーヒー__ですか?

※ワイルドカードの意味とは異なりますので間違いないようにしてください

[ + ]直前の文字を1文字以上繰り返し

直前の文字を1文字以上繰り返すときに" + "を使います。
1文字以上なので直前の文字が必ず必要です。


メー + ルがきてますか?

__メール__がきてますか?
__メーーーーール__がきてますか?

※ " + "は1文字以上の繰り返しなので__メルー__とはならないので注意してください

[ ? ]直前の文字が0文字か1文字か

直前の文字を0文字か1文字だけ繰り返すときに" ? "を使います。


windows ? PC持ってる?

__window__PC持ってる?
__windows__PC持ってる?

[ [] ]中に書いてある文字のどれか

いずれかの文字に当てはめたいときに使います。


今日は[傘鞄靴]を持ってきてください。

今日は__傘__を持ってきてください。
今日は__鞄__を持ってきてください。
今日は__靴__を持ってきてください。

※[]に書かれているものだけなので、
今日は__服__を持ってきてください。は当てはまりません。

[ () ]複数文字単位でまとめる

今まで一文字単位での処理しかしていませんでした。
なので複数文字を処理したいときは()を使ってまとめることが出来ます。


(かわいい)猫が欲しい

と、()の内部を1文字のようにまとめることが出来ます。


(かわいい) * 猫が欲しい

とすると
直前の文字、()が0文字以上繰り返しなので

猫が欲しい
__かわいい__猫が欲しい
__かわいいかわいい__猫が欲しい

ということになります。

[ . ][ * ]組み合わせて1

何らかの文字1文字だけ表現するときの[ . ]と
直前の文字を0文字以上繰り返すときの[ * ]を掛けあわせて使います。


携帯、持 ...* 

携帯、持__って__
携帯、持__つの??????__

※[ . ]が3つなので、何かしらの文字が3文字。
ですが、[ * ]が直前の文字を0文字以上ということなので__2文字以上__の文字ということになります。
よって
携帯、持つ はダメです。

[ () ][ ? ]組み合わせ2

複数の文字をまとめる()と
直前の文字を0文字か1文字繰り返す?を使います


この(コーヒー) + 豆を焙煎しておいて

この豆を焙煎しておいて
この__コーヒー__豆を焙煎しておいて

直前の__コーヒー__を0文字か1文字だけ繰り返すので
このコーヒーコーヒー豆を焙煎しておいてでは間違いになります。

参考

サルにもわかる正規表現入門

10
9
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
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?