正規表現†
正規表現 とは†
構文の種類†
- SRE
- Simple Regular Expression
- ERE
- Extended Regular Expression
ツール†
基本正規表現(BRE)†
^ | 行の先頭 |
$ | 行の末尾 |
\A | 文字列の先頭 |
\z | 文字列の末尾 |
. | 任意の1文字 |
* | 直前の指定の0回以上の繰り返し |
\d | 0~9の数値 |
\s | 半角スペース |
\t | 半角タブ |
\w | 英数字とアンダースコア(_) |
[ ] | カッコ内のいずれか1文字 |
[^] | カッコ内に存在しない1文字 |
( ) | カッコ内の文字をグループ化する |
拡張正規表現(ERE)†
? | 直前の指定の0回か1回の繰り返し |
+ | 直前の指定の1回以上の繰り返し |
{n} | 直前の指定のn回以上の繰り返し |
{n,m} | 直前の指定のn回〜m回の繰り返し |
| | 左右のいずれかにマッチ |
使用例†
- 文字の種類
- [a-z] ※英字(小文字のみ)
- [A-Z] ※英字(大文字のみ)
- [0-9] ※数字
- [a-zA-Z0-9] ※英数字
- 文字数
- {1} ※1文字
- {10} ※10文字
- {1,10} ※範囲:1〜10文字
- 組合せ(文字の種類、文字数)
- [a-z]{10} ※英字(小文字のみ)が10文字
- [A-Z][0-9]{9} ※英字(大文字のみ)に続く2〜9文字目が数字
- (http|https) ※httpまたはhttps
- Stringに対するメソッド
- String
- match
- replace
- search
- split
正規表現とセキュリティ†
- ReDoS
- Regular Expressions DoS
- 脆弱な正規表現として、処理に時間がかかる正規表現の条件で処理を実行させる