LoginSignup
3
3

More than 5 years have passed since last update.

PHP 正規表現メモ

Last updated at Posted at 2017-01-25

正規表現メモ

個人的に使用した正規表現を淡々とメモしていくページ。
下部にリファレンス記載。

画像パスから、ファイル名・拡張子・ID・縦・横サイズを抜き出す正規表現。

対象文字列:news789_NS_789_9457_2_240x240.jpg
正規表現 :/^hoge([0-9]+)(.+)([0-9]{2,4}?)x([0-9]{2,4}).(jpg|gif|png)/

$match[0] = hoge_NS_789_9457_2_240x240.jpg
$match[1] = 789
$match[2] = NS_789_9457_2
$match[3] = 240
$match[4] = 240
$match[5] = jpg

リファレンス

文字クラス

文字クラス
[abc] a,b,cいずれかの1文字
[^abc] a,b,c以外の1文字
[A-Z] 大文字のアルファベット1文字
[0-9] 数字1文字
[a-zA-Z0-9] アルファベットか数字1文字
[!-~] 半角文字1文字
\w アルファベットか数字かアンダースコア1文字
\W アルファベット、数字、アンダースコア以外の1文字
\d [0-9]と同じ
\D [^0-9]と同じ
\s 空白1文字 ([ \r\t\n\f\v] と同じ)
\S 空白以外1文字 ([^ \r\t\n\f\v] と同じ)
\n 改行
\t タブ

量指定子

量指定子
* 0回以上の繰り返し
+ 1回以上の繰り返し
? 0回または1回の出現
{n} n回の繰り返し
{n,m} n回以上、m回以下の繰り返し
{n,} n回以上の繰り返し

※量指定子に続けて?を記述すると、最短でのマッチングを実施。

その他のメタ文字

その他のメタ文字
. 改行以外の1文字
^ 行頭
$ 行末
パイプ いずれかの文字列
() グループ化
\ 直後のメタ文字をエスケープする

※パイプは→|

修飾子

修飾子 (末尾のデリミタの後ろに記述)
i 大小文字の違いを無視する
s シングルラインモードにする(.が改行にマッチする)
m マルチラインモードにする(^と$が改行の直前直後にマッチ)
u マルチバイト(UTF-8)対応

※メタ文字は \ ^ . $ * ? | ( ) [ ] { }
※[ ]内はメタ文字が通常の文字として扱われるのでエスケープする必要無し。

3
3
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
3
3