40
29

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 2018-05-29

#フラグって何?
正規表現では
/(pattern)/
と記述するが、
パターンの後に以下のようにフラグを設定することができる。
/(pattern)/(flag)

#フラグの種類
※PHPを使って各フラグの種類について例を取り上げます。
##g
最初の1個だけでなく、文字列の最後まで検索を繰り返す。グローバルマッチとも呼ばれる。
例)
preg_replace('/aa/', 'cc', 'aabbccaabbcc') → ccbbccaabbcc
このやり方だと一番初めのaaがccに置換される
preg_replace('/aa/g', 'cc', 'aabbccaabbcc') → ccbbccccbbcc
gフラグを使うと文字列の全てのaaがccに置換される

##i
大文字小文字を区別せずにマッチうる
例)
preg_match('/XYZ/', 'xYz') → false
大文字小文字を区別するため、マッチしていないと判断されてfalseになる
preg_match('/XYZ/i', 'xYz') → true
iフラグを使うと大文字小文字を区別しないため、マッチしていると判断されてtrueになる

##m
^と$がそれぞれ先頭と末尾だけでなく、行頭と行末にもマッチする
例)
preg_match('/^hello$/', 'hello\nworld') → false
$は文字列の末尾のみにマッチするのでfalseになる
preg_match('/^hello$/m', 'hello\nworld') → true
mフラグを使うと$が文字列の末尾と行末にマッチするのでtrueになる

40
29
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
40
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?