正規表現テスター/ リアルタイムマッチ
リアルタイムマッチハイライト、キャプチャグループ詳細、置換モード、一般的なパターンを内蔵。ローカル処理。
//
よく使う:
テスト文字列
上にパターンを入力してください。
このツールは役に立ちましたか?
正規表現テスターとは
正規表現テスターは、開発者が正規表現をリアルタイムでテスト・デバッグでき、マッチ結果、キャプチャグループ、置換効果を即座に確認できるツールです。
正規表現の一般的な使用场景
フォームバリデーション:メール、電話番号、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()) // 0Go
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 回のマッチで制限します。