エンジニアのひよこ_level10

【毎日更新!】新卒3年目エンジニアブログです!

【正規表現】任意の同じ文字を指定する。【643日目】

正規表現で、『同じ文字』を表現したい

aaaaa@nyamucoro.com

この、@より前がすべて同じ文字なのを検証したい

\1でかっこの値を判定でも用いる

preg_match('/^(.)\1+@/', $value, $matches);

'(.)\1+'解説

\1と書くと、かっこの値を指定することが出来る。右の数値は、かっこが出現した時の順番の値。

  1. (.)で、任意の一文字
  2. \1で、その直前の(.)自身。( (.)がaなら\1もa)
  3. \1+で、2.の任意の個数指定

aaaaa@nyamucoro.comなら、

  1. aaaaaの最初のaが (.)でマッチする。
  2. aaaaaの二番目のaが、 \1でマッチする。
  3. aaaaaの二番目以降は、 \1+でマッチする。