正規表現とは†
- Regular Expression
- 正規式
- 記号列
- 文字列の状態を抽象的に表現したもの。
- パターン定義法
構文の種類†
- 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
- 脆弱な正規表現として、処理に時間がかかる正規表現の条件で処理を実行させる
関連用語†