LoginSignup
0
0

More than 3 years have passed since last update.

初心者向け、正規表現

Posted at

はじめに

この記事は、
「はじめての正規表現。どんなものかだけ知りたい!」
という人向けです。

正規表現は何に使うか

1 文字列が指定のパターンに一致するか判定

入力チェックなんかで使います。


文字列がaaaで始まってcccで終わるか判定

正規表現のパターン
aaa.*ccc

判定の例

文字列      判定結果 
aaaccc OK
aaavvccc OK
aaa??ccc OK
aaccc NG
ccc NG

2 文字列のうち、パターンに一致する場所を探す

基本的には一番長く一致する場所になります。
文字列のうち、パターンに一致する場所をほかの文字列に置き換える時にも使います。


文字列がaaaで始まってcccで終わる場所

正規表現のパターン
aaa.*ccc

判定の例

文字列      見つかった文字列
abcaaacbcccacccb aaacbcccaccc

簡単な正規表現

ドット

上の例でも使った.は、任意の1文字を表します。
正規表現のパターンa.cとすると、a[任意の1文字]cとなります。

文字列      判定結果 
abc OK
abbc NG

アスタリスク

*は、直前の表現が0回以上繰り返す。です。
正規表現のパターンa*cとすると、[aが0回以上]cとなります。

文字列      判定結果 
ac OK
aaac OK
c OK
abc NG

グルーピング

()で文字をまとめることができます。
正規表現のパターン(aa)*cとすると、[aaが0回以上]cとなります。

文字列      判定結果 
aac OK
aaaac OK
c OK
ac NG

あれかこれにヒット

|をつかってorを表現できます。
正規表現のパターン(aa|cc)とすると、aa or ccとなります。

文字列      判定結果 
aa OK
cc OK
aacc NG

範囲指定

[A-Z]でアルファベット大文字を表現できます。
※全角の扱いは注意。

正規表現のパターン[A-Z]*とすると、大文字だけで構成された文字列となります。

文字列      判定結果 
QIITA OK
Qiita NG

パターンの作るとき

実際に欲しいパターンを作るときはテストできるサイトで試しながら作ります。
正規表現には方言のようなものがあったりするので、ちゃんと調べて、実装後のテストは入念にしましょう。

あとがき

正規表現で検索するととっつきにくい記事ばかり出てくるので、
この記事はアップデートしてとっつきやすくしたい。

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