Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

正規表現のフラグ

More than 1 year has passed since last update.

フラグって何?

正規表現では
/(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になる

Otake_M
新卒3年目のソフトウェアエンジニア バックエンドは主にLaravel/Rails、フロントエンドは主にVue.js/Nuxt.jsで開発をしてきました。 インフラはAWSをメインに触っています。
tabian
画像認識技術を用いて、新しいポスター体験を提供する「ポ写」を開発している全員副業のスタートアップです! エンジニアが自由に、でも真面目に技術に向き合える環境、それは最新技術にとことんこだわれることだと思って日々Qiitaの更新頑張ってます。
https://tabian.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away