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

Regexのいろは

Posted at

はじめに

この記事は、Regexとはなんぞやということを、自分の理解のために整理してみたものです。

Regexとは?

Regex=Regular expressions のことで、
__正規表現__を意味します。

正規表現とは、
__パターンを使ってより細かい検索をかける__ことで、
様々な言語で使用することができます。

検索をかける書き方のパターンは、
基本的に言語を通して共通しています。

ここからは、
実際に正規表現をいくつか紹介していきます。

メタ文字

※正規表現に使える、
特別な文字のことを__メタ文字__と言います。
※このメタ文字自体を文字として検索したい場合は、「\」を用いれば良いです。

ドット.

「なんでもいいけど1文字」を表す。(改行以外、空白もドットも入る)

かぎかっこ[]

「いずれかの文字」ということ。
例)
[ABC]
なら、AかBかCということです。

否定の場合は、
[^ABC]
と書きます。

これは、「いずれかの文字でない」ということです。
ABCでなければなんでも良いので、空白なども入ります。

ハイホン-

文字の範囲指定ができます。
[A-Z] [0-9]のような感じです。

[a-zA-Z0-9]と書くと、小文字のa~z, 大文字のA~Z, 数字の0~9のいずれかに当てはまるということです。

ワード文字 \w

\w[a-zA-Z0-9_]と同じ意味です。(アルファベットか数字かアンダースコア)
\W だと、否定の [^a-zA-Z0-9_]と同じ意味になります。
(小文字か大文字かの違い)

数字Digit

\d[0-9] と同じ意味です。
ワード文字と同様に、\D の時は否定になります。

Space

 \s は、「空白、タブ、改行文字」を意味します。
「空白、タブ、改行文字」以外を表す時は、\S です。

プラス+

「直前の文字の1回以上の繰り返し」という意味です。

アスタリスク*

「直前の文字の0回以上の繰り返し」という意味です。

クエスチョンマーク?

「直前の文字の0回または1回の登場」という意味です。

Lazyとして、「最小限のマッチに強制」という意味合いも持っています。

{ }

「繰り返し回数」を表します。
{1,3}なら、1回以上3回までということです。

例)
b\w{2/3} なら、
bee, beer, beeersなどが引っかかります。

{2,} なら2回以上、
また{3} は、限定回数を表します。

選択 |

「いずれかの文字(文字列)を指定」という意味です。
例)
b(l|e|i)d

行末・行頭の条件

^ で、「行頭である」という条件をつけることができます。
$ で、「行末である」ということの条件付けです。
^Hello$ のように両用することもできます。

ワード境界

\b で、「他のワードとの境界」にマッチします。

グループ化()

(ha)+ などとすると、
グループ'ha'の繰り返しを表します。

この()は、勝手にキャプチャリングされ、
後々、\1,\2,\3...というように、

指定し、参照することができます。
例えば、(\w)a\1 とすれば、
⚫︎a⚫︎、のようなaを同じ文字で挟んだものという指定ができます。

⚠️$1, $2, $3はまた別⚠️

キャプチャリングを防ぐには、
(?:ha)+ というように、
?:を追加すれば良いです。

フラグ

「大文字小文字を区別しない」とき、
insensitiveのiを用いて書きます。

gグローバルマッチ

グローバルマッチをオフにすると、
最初にヒットした時点で、
検索をやめてしまいます。

mマルチライン

マルチラインをオフにすると、
複数行の検索をしなくなります。

参考

YouTUbe チュートリアル道場 正規表現入門

1
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
1
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?