Regex Tester — 正規表現をリアルタイムでテストおよびデバッグする
正規表現 (regex) は、開発者の武器庫の中で最も強力なツールの 1 つであり、また最も難解なツールの 1 つです。うまく作成された 1 つの正規表現で、50 行の文字列解析コードを置き換えることができます。当社のリアルタイム テスターを使用すると、IDE の編集、保存、実行サイクルを行わずに、パターンを構築、テスト、理解することができます。
正規表現構文のクイック リファレンス
| パターン | 一致 | 例 |
|---|---|---|
\\\\d | 0 ~ 9 の任意の数字 | \\\\d{4}2024年の試合 |
\\\\w | 単語文字 (文字、数字、_) | \\\\w+「hello_world」に一致します |
^ / $ | 文字列の開始/終了 | ^\\\\d{5}$5桁の郵便番号のみに一致します |
[...] | セット内の任意の文字 | [アイオウ]任意の母音に一致します |
(?:...) | 非捕獲グループ | キャプチャグループに保存しないグループ |
(?=...) | 前向きの先読み | \\\\w+(?=\\\\.com)サブドメインに一致します |
ブックマークに値する 5 つの現実世界の正規表現パターン
- 電子メールの検証:
/^[\\\\w.-]+@[\\\\w.-]+\\\\.[a-z]{2,}$/i - 米国の電話番号:
/^(\\\\+1)?[\\\\s.-]?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]?\\\\d{3}[\\\\s.-]?\\\\d{4}$/ - URL 抽出:
/https?:\\\\/\\\\/[^\\\\s"']+/g - 強力なパスワードチェック:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$/ - 余分な空白を削除します。
/\\\\s+/g単一のスペースに置き換えます
よくある質問
g、i、m フラグは何をするのでしょうか?
g(グローバル): 最初の一致だけでなく、すべての一致を検索します。私: 大文字と小文字は区別されません。メートル(複数行): ^ と $ は、文字列境界ではなく行境界に一致します。
私の正規表現はここでは機能するのに、Python では機能しないのはなぜですか?
このテスターは JavaScript の正規表現エンジンを使用します。パイソンの再モジュールには構文に小さな違いがあります。特に、Python では次のような違いがあります。(?P<名前>...)名前付きグループの場合、JavaScript では(?<名前>...).
壊滅的な後戻りの原因は何ですか?
のようなパターン(a+)+一致しない長い文字列に適用すると、指数関数的な時間計算量が発生します。原子グループまたは所有量指定子をサポートするエンジンでそれらを使用するか、ネストされた繰り返しを避けるためにパターンを再構築します。