Invalid regular expression
正規表現のパターンが不正な場合のエラー
概要
正規表現のパターンに構文エラーがある場合に発生するエラーです。エスケープの問題、括弧の不一致、無効な量指定子などが原因です。
エラーメッセージ
SyntaxError: Invalid regular expression: /pattern/: message
SyntaxError: Invalid regular expression: Unterminated group
SyntaxError: Invalid regular expression: Nothing to repeat
re.error: bad escape \x at position 5 (Python)
原因
- エスケープ漏れ: 特殊文字をエスケープしていない
- 括弧の不一致:
(と)の数が合わない - 無効な量指定子:
*や+の前に何もない - 無効な文字クラス:
[]の中身が不正 - 言語・エンジンの違い: 正規表現の方言
解決策
1. 特殊文字のエスケープ
| |
2. 括弧の一致
| |
3. 量指定子の正しい使用
| |
4. 文字クラス
| |
5. 後方参照
| |
6. 先読み・後読み
| |
7. フラグの使用
| |
8. Pythonでの正規表現
| |
9. よくあるパターン
| |
10. 正規表現のテスト
| |
11. 安全な正規表現の作成
| |
主な正規表現エンジンの違い
| 機能 | JavaScript | Python | PCRE |
|---|---|---|---|
| 後読み | ES2018+ | ✅ | ✅ |
| 名前付きグループ | (?<name>) | (?P<name>) | (?P<name>) |
| Unicode | /u フラグ | デフォルト | 設定による |
よくある間違い
- ユーザー入力をエスケープせずに正規表現に使用
*と+の違いを理解していない- 貪欲マッチと非貪欲マッチ(
*?)の違い - 文字列リテラルでのバックスラッシュのエスケープ忘れ
関連エラー
参考リンク
正規表現 の他のエラー
この記事は役に立ちましたか?