正規表現テスター
即時一致結果で正規表現をテストおよびデバッグ
マッチ結果
マッチ詳細
クイックテンプレート
置換機能
sed 's/pattern/replacement/g' input.txt
正規表現テストツール文書
正規表現とは?
正規表現(regex)は、プログラミングでテキストを検索、抽出、操作するために使用される強力なパターンマッチングツールです。特殊文字と構文を使用して文字列とマッチする検索パターンを定義します。
正規表現はデータ検証、テキスト処理、ログ解析、検索置換操作に広く使用されています。テキストのパターンを識別する簡潔で柔軟な方法を提供します。
このツールの使い方
- クイックテンプレートを選択するか、正規表現パターンを入力
- 適切なフラグを設定(gはグローバル、iは大文字小文字無視、mは複数行)
- サンプルテストテキストを入力または読み込み
- リアルタイムマッチ結果と詳細情報を表示
- 置換機能を使用して置換操作をテスト
正規表現フラグ
g
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})
市外局番、交換局番号、番号を柔軟な形式でキャプチャ。
URLマッチング
https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)
オプションのwwwプレフィックスと様々なパス形式を持つHTTP/HTTPS URLにマッチ。
強力なパスワード検証
^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d@$!%*?&]{8,}$
小文字、大文字、数字を含む8文字以上が必要。
高度な機能
([0-9]{4})-([0-9]{2})-([0-9]{2})
(?=.*password)
(?: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
errorReplace Mode (With Replacement)
When replacement text is provided, generates a substitution command.
sed 's/pattern/replacement/flags' input.txt
foo、置換:bar学習リソース
ベストプラクティス
シンプルから始めて徐々に複雑に
正規表現を段階的に構築しましょう。一部のケースにマッチするシンプルなパターンから始め、エッジケースに対応するように改良します。各ステップをテストすることで複雑なデバッグを防げます。
可能な場合は非キャプチャグループを使用
グループをキャプチャする必要がない場合は、(...) の代わりに (?:...) を使用してください。これによりパフォーマンスが向上し、キャプチャグループの番号がすっきりします。
パターンをアンカーする
適切な場合は ^ と $ を使用してパターンを行/文字列の境界にアンカーしてください。アンカーのないパターンは予期しない部分文字列にマッチする可能性があります。
文字クラスを具体的に指定
.* (すべてにマッチ) の代わりに、[a-zA-Z]+ や \d{3} のような具体的なクラスを使用してください。広すぎるパターンは誤ったマッチやバックトラッキングの問題を引き起こします。
特殊文字をエスケープ
. * + ? [ ] ( ) { } ^ $ \ | を文字通りにマッチさせたい場合は、エスケープすることを忘れないでください。このツールの正規表現エスケープ形式が役立ちます。
エッジケースでテスト
空文字列、非常に長い文字列、特殊文字、Unicodeで正規表現をテストしてください。実世界のデータには予期しないパターンが含まれていることがよくあります。
トラブルシューティング
パターンが何もマッチしないのはなぜ?
フラグを確認:複数マッチには 'g'、大文字小文字を区別しない場合は 'i'、複数行には 'm'。また、特殊文字が適切にエスケープされているか確認してください。
正規表現がブラウザをフリーズさせるのはなぜ?
(a+)+ や (a|aa)* のようなネストされた量指定子による破滅的なバックトラッキングが原因です。パターンを簡略化するか、サポートされている場合は強欲量指定子を使用してください。
キャプチャグループが予期しない値を返すのはなぜ?
グループ番号は最初の (...) から1で始まります。グループ0は全体のマッチです。非キャプチャグループ (?:...) はグループ番号を消費しません。
異なる言語でパターンの動作が違うのはなぜ?
正規表現のフレーバーは異なります。JavaScriptは古いブラウザで後読みをサポートしていません。\b や \w などの機能はUnicodeで異なる動作をする場合があります。ターゲット環境でテストしてください。