正規表現のテストとデバッグ:基礎から効率的なパターンまで
テキスト(更新: 2026年4月23日)
なぜオンラインで正規表現をテストするのか?
正規表現は強力ですが、一度で正しく書けることは少ありません。オンラインテスターでは次ができます。
- リアルタイムハイライト:パターンとテキストを入力すると即座に一致を表示
- キャプチャグループの可視化:各グループの内容を確認
- フラグの切り替え:
g/i/m/sをすばやく試せる - 構文エラーの即時表示:不正なパターンはすぐに警告
正規表現構文早見表
基本マッチ
| 構文 | 意味 | 例 | マッチ |
|---|---|---|---|
. |
任意の1文字(改行除く) | a.c |
abc, a1c |
\d |
数字 | \d{3} |
123 |
\w |
単語文字 | \w+ |
hello_1 |
\s |
空白 | a\sb |
a b |
[abc] |
文字クラス | [aeiou] |
a, e, i |
[^abc] |
否定クラス | [^0-9] |
数字以外 |
量詞
| 構文 | 意味 | 貪欲/非貪欲 |
|---|---|---|
* |
0回以上 | a* / a*? |
+ |
1回以上 | a+ / a+? |
? |
0回または1回 | a? / a?? |
{n,m} |
n〜m回 | a{2,4} |
グループと参照
| 構文 | 意味 | 例 |
|---|---|---|
(abc) |
キャプチャグループ | (\d{4})-(\d{2}) |
(?:abc) |
非キャプチャ | (?:http|https):// |
\1 |
後方参照 | (\w)\1 は aa, bb |
(?<name>) |
名前付きグループ | (?<year>\d{4}) |
オンライン正規表現ツールの使い方
手順
- 正規表現テスター を開く
- 正規表現欄にパターンを入力
- テスト欄に対象テキストを入力
- フラグを選択(
g全体 /i大文字小文字無視 /m複数行) - ハイライトと一致結果を確認
よく使うフラグ
| フラグ | 意味 | デフォルト |
|---|---|---|
g |
すべて一致 | 最初の1件のみ |
i |
大文字小文字を無視 | 区別する |
m |
複数行モード | 単一行 |
s |
. が改行にも一致 |
改行には不一致 |
u |
Unicodeモード | — |
よくある落とし穴
1. 貪欲マッチ
テキスト: <div>hello</div><div>world</div>
パターン: <div>.*</div>
結果: 全体が1つの一致に!
修正: <div>.*?</div> ← 非貪欲で2つに分割
2. 指数的バックトラック
// 危険:ネストした量詞
/^(a+)+$/.test('a'.repeat(30) + 'b');
// 数秒かかる、またはハングする
// 修正:ネスト量詞を避ける、またはアトミックグループ
3. 特殊文字のエスケープ忘れ
パターン: price.com ← . は任意文字
修正: price\.com ← price.com のみ
実用例
| 用途 | 正規表現 |
|---|---|
| 携帯番号(中国) | ^1[3-9]\d{9}$ |
| メール(簡易) | ^[\w.-]+@[\w-]+\.[\w.]+$ |
| URL | ^https?:\/\/[\w.-]+(?:\.[\w]+)+[/\w.-]*$ |
| IPアドレス | ^(\d{1,3}\.){3}\d{1,3}$ |
| 日付 YYYY-MM-DD | `^\d{4}-(?:0[1-9] |
| 漢字 | [\u4e00-\u9fff]+ |
よくある質問
ツールでは動くがコードでは動かない?
g フラグの有無、改行を含む文字列に m / s が必要かどうかを確認してください。
複数行テキストをマッチさせるには?
s フラグで . に改行を含めるか、[\s\S] を使います。
まとめ
正規表現は開発者に必須ですが、構文ミスは起きやすいものです。正規表現テスター でリアルタイム検証し、効率よくデバッグしましょう。ToolsKuには 検索・置換、テキスト比較 もあり、テキスト処理をまとめて対応できます。
#正则表达式#Regex#文本处理#教程#调试