CoderTools

正規表現テスター

即時一致結果で正規表現をテストおよびデバッグ

マッチ結果

マッチが見つかりません

                    

マッチ詳細

正規表現パターンとテストテキストを入力して詳細なマッチ情報を表示します
/ /

クイックテンプレート

置換機能

キャプチャグループには $1, $2 などを使用してください

                        
sed 's/pattern/replacement/g' input.txt
This sed command can be used in Unix/Linux/macOS terminal or Git Bash on Windows

正規表現テストツール文書

正規表現とは?

正規表現(regex)は、プログラミングでテキストを検索、抽出、操作するために使用される強力なパターンマッチングツールです。特殊文字と構文を使用して文字列とマッチする検索パターンを定義します。

正規表現はデータ検証、テキスト処理、ログ解析、検索置換操作に広く使用されています。テキストのパターンを識別する簡潔で柔軟な方法を提供します。

このツールの使い方

  1. クイックテンプレートを選択するか、正規表現パターンを入力
  2. 適切なフラグを設定(gはグローバル、iは大文字小文字無視、mは複数行)
  3. サンプルテストテキストを入力または読み込み
  4. リアルタイムマッチ結果と詳細情報を表示
  5. 置換機能を使用して置換操作をテスト

正規表現フラグ

g
グローバル
最初の1つだけでなく、すべてのマッチを検索
i
大文字小文字無視
大文字小文字を区別しないマッチング
m
複数行
^ と $ が行境界にマッチ

一般的な正規表現パターン

基本パターン
\\d - 任意の数字 (0-9)
\\w - 単語文字 (a-z, A-Z, 0-9, _)
\\s - 空白文字
. - 改行以外の任意の文字
量詞
+ - 1つ以上
* - 0個以上
? - 0個または1個
{n} - ちょうどn回
アンカー
^ - 行の開始
$ - 行の終了
\\b - 単語境界

実用例

メールアドレス検証

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}

マッチ:1つ以上の有効な文字、@、ドメイン名、2文字以上の拡張子。

電話番号(米国形式)

\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})

市外局番、交換局番号、番号を柔軟な形式でキャプチャ。

マッチ (555) 123-4567, 555.123.4567, 555-123-4567

URLマッチング

https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)

オプションのwwwプレフィックスと様々なパス形式を持つHTTP/HTTPS URLにマッチ。

マッチ https://example.com, http://www.site.org/path

強力なパスワード検証

^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d@$!%*?&]{8,}$

小文字、大文字、数字を含む8文字以上が必要。

マッチ Password123, MyStr0ngP@ss

高度な機能

キャプチャグループ
括弧()を使用してマッチの部分を置換用にキャプチャ
([0-9]{4})-([0-9]{2})-([0-9]{2})
先読み/後読み
前後の内容に基づいてマッチするが、それらを含まない
(?=.*password)
非キャプチャグループ
(?:pattern)を使用してキャプチャしないでグループ化
(?:http|https)://

ヒントとベストプラクティス

  • シンプルに始めて段階的に複雑さを増す
  • グローバルフラグ(g)を使用してすべてのマッチを検索
  • 特殊文字はバックスラッシュ(\)でエスケープ
  • 様々な入力例で徹底的にテスト
  • 複雑な置換にはキャプチャグループを使用
  • 大きなテキストではパフォーマンスを考慮

sed Command Generation

This tool automatically generates equivalent sed commands based on your regex pattern and replacement text, making it easy to use regex in Unix/Linux command line.

Search Mode (Empty Replacement)

When replacement text is empty, generates a search command to print matching lines only.

sed -n '/pattern/p' input.txt
例:パターン:error
結果:'error' を含むすべての行を出力

Replace Mode (With Replacement)

When replacement text is provided, generates a substitution command.

sed 's/pattern/replacement/flags' input.txt
例:パターン:foo、置換:bar
結果:すべての 'foo' を 'bar' に置換
Note: Special characters are automatically escaped. The generated command works in Unix/Linux/macOS terminals and Git Bash on Windows.

ベストプラクティス

シンプルから始めて徐々に複雑に

正規表現を段階的に構築しましょう。一部のケースにマッチするシンプルなパターンから始め、エッジケースに対応するように改良します。各ステップをテストすることで複雑なデバッグを防げます。

可能な場合は非キャプチャグループを使用

グループをキャプチャする必要がない場合は、(...) の代わりに (?:...) を使用してください。これによりパフォーマンスが向上し、キャプチャグループの番号がすっきりします。

パターンをアンカーする

適切な場合は ^ と $ を使用してパターンを行/文字列の境界にアンカーしてください。アンカーのないパターンは予期しない部分文字列にマッチする可能性があります。

文字クラスを具体的に指定

.* (すべてにマッチ) の代わりに、[a-zA-Z]+ や \d{3} のような具体的なクラスを使用してください。広すぎるパターンは誤ったマッチやバックトラッキングの問題を引き起こします。

特殊文字をエスケープ

. * + ? [ ] ( ) { } ^ $ \ | を文字通りにマッチさせたい場合は、エスケープすることを忘れないでください。このツールの正規表現エスケープ形式が役立ちます。

エッジケースでテスト

空文字列、非常に長い文字列、特殊文字、Unicodeで正規表現をテストしてください。実世界のデータには予期しないパターンが含まれていることがよくあります。

トラブルシューティング

パターンが何もマッチしないのはなぜ?

フラグを確認:複数マッチには 'g'、大文字小文字を区別しない場合は 'i'、複数行には 'm'。また、特殊文字が適切にエスケープされているか確認してください。

正規表現がブラウザをフリーズさせるのはなぜ?

(a+)+ や (a|aa)* のようなネストされた量指定子による破滅的なバックトラッキングが原因です。パターンを簡略化するか、サポートされている場合は強欲量指定子を使用してください。

キャプチャグループが予期しない値を返すのはなぜ?

グループ番号は最初の (...) から1で始まります。グループ0は全体のマッチです。非キャプチャグループ (?:...) はグループ番号を消費しません。

異なる言語でパターンの動作が違うのはなぜ?

正規表現のフレーバーは異なります。JavaScriptは古いブラウザで後読みをサポートしていません。\b や \w などの機能はUnicodeで異なる動作をする場合があります。ターゲット環境でテストしてください。