正規表現メモ
個人的に使用した正規表現を淡々とメモしていくページ。
下部にリファレンス記載。
画像パスから、ファイル名・拡張子・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)対応 |
※メタ文字は \ ^ . $ * ? | ( ) [ ] { }
※[ ]内はメタ文字が通常の文字として扱われるのでエスケープする必要無し。