正規表現テスター/ リアルタイムマッチ

リアルタイムマッチハイライト、キャプチャグループ詳細、置換モード、一般的なパターンを内蔵。ローカル処理。

//
よく使う:
テスト文字列

上にパターンを入力してください。

このツールは役に立ちましたか?

正規表現テスターとは

正規表現テスターは、開発者が正規表現をリアルタイムでテスト・デバッグでき、マッチ結果、キャプチャグループ、置換効果を即座に確認できるツールです。

正規表現の一般的な使用场景

フォームバリデーション:メール、電話番号、ID形式の検証。データ抽出:テキストから特定パターンの情報抽出。テキスト置換:パターンマッチするテキストの一括置換。ログ分析:特定条件に一致するログ行のフィルタリング。

コード例

JavaScript
const re = /(?<year>\d{4})-(\d{2})/g;
const str = "2024-03 and 2025-01";

for (const m of str.matchAll(re)) {
  console.log(m[0]);          // "2024-03"
  console.log(m.groups.year); // "2024"
  console.log(m[2]);          // "03"
  console.log(m.index);       // 0
}
Python
import re

pattern = r"(?P<year>\d{4})-(\d{2})"
text = "2024-03 and 2025-01"

for m in re.finditer(pattern, text):
    print(m.group(0))         // "2024-03"
    print(m.group("year"))    // "2024"
    print(m.group(2))         // "03"
    print(m.start())          // 0
Go
import "regexp"

re := regexp.MustCompile(
  `(?P<year>\d{4})-(\d{2})`,
)
text := "2024-03 and 2025-01"

matches := re.FindAllStringSubmatch(
  text, -1,
)
// matches[0][0] = "2024-03"
// matches[0][1] = "2024"  (year)
// matches[0][2] = "03"
Rust
use regex::Regex;

let re = Regex::new(
  r"(?P<year>\d{4})-(\d{2})"
).unwrap();
let text = "2024-03 and 2025-01";

for cap in re.captures_iter(text) {
    println!("{}", &cap[0]);  // "2024-03"
    println!("{}", &cap["year"]); // "2024"
    println!("{}", &cap[2]);  // "03"
}

よくある質問

正規表現フラグの役割は?
g(グローバル)は最初のマッチだけでなくすべてを検索;i(大文字小文字無視);m(複数行)は ^ と $ が各行の先頭と末尾にマッチ;s(dotAll)は . が改行にもマッチ。
キャプチャグループの参照方法は?
括弧 () でキャプチャグループを作成し、置換欄で $1、$2 で参照。例:パターン (\d{4})-(\d{2}) を $2/$1 で置換すると 2024-03 が 03/2024 に。名前付きグループ (?<name>…) は $<name> で参照。
マッチ結果の「位置」の意味は?
位置(index)は元の文字列内でのマッチ開始文字のオフセットで、0 から始まります。プログラミングで有用で、String.prototype.slice() や文字列置換操作に直接使用できます。
中国語文字にマッチするには?
単一の漢字には [\u4e00-\u9fff] を使用。より広い範囲:[\u4e00-\u9fff\u3400-\u4dbf\uf900-\ufaff]。u フラグを有効にすると、\p{Script=Han} ですべての漢字にマッチ(Unicode プロパティエスケープ)。
幅ゼロの先読みとは?
幅ゼロの先読みは位置にマッチし、文字を消費しません:正の先読み (?=…) は右側が条件を満たす必要;負の先読み (?!…) は右側が条件を満たさない必要;正の後読み (?<=…) は左側が条件を満たす必要。
正規表現が無限ループになる理由は?
g フラグ使用時、空文字列にマッチするパターン(a* や .*)は空マッチ後に lastIndex が進まず、無限ループが発生。本ツールは空マッチ後に lastIndex を自動的に進め、最大 2000 回のマッチで制限します。