正規表現を テスト
ブラウザで正規表現を即座にテスト・デバッグ。マッチのハイライト、キャプチャグループの確認、置換モードをすべて無料でプライベートに利用できます。
ブラウザで正規表現を即座にテスト・デバッグ。マッチのハイライト、キャプチャグループの確認、置換モードをすべて無料でプライベートに利用できます。
正規表現は、テキスト内のパターンを照合するためのドメイン固有の言語です。これらは 1968 年以来コンピューティングの一部であり、現在ではすべての最新のプログラミング言語、テキスト エディター、コマンド ライン検索ツールに組み込まれています。構文は簡潔ですが、エラーが発生しやすくなっています。小さな変更により、一致動作が微妙に異なり、複雑な式はすぐに読めなくなります。パターンの編集中にリアルタイムで一致を表示するテスターは、正規表現を開発および検証する最も効果的な方法です。
このテスターは、JavaScript 正規表現エンジン (アプリケーションがブラウザで実行する場合に使用するものと同じ) を使用してブラウザで実行されます。パターンとテスト テキストは反応的に更新されます。いずれかの変更が行われるたびに、一致が再実行されます。一致グループが強調表示され、キャプチャされたグループがリストされ、フラグ (大文字と小文字を区別しない、複数行、グローバル) がテスト用に公開されます。
正規表現構文はエンジンごとに微妙に異なります。 JavaScript は ECMAScript 仕様に従います。 Python、PCRE (PHP などで使用)、Java、Go にはそれぞれ独自の方言があり、機能は重複していますが同一ではありません。ここで開発されたパターンは ECMAScript 構文を使用します。エンジン間の移植性を実現するには、各ターゲットのドキュメントを確認する必要があります。
正規表現のバグは、展開後にデバッグするのが難しいことで知られています。合理的であるように見えるパターンでも、意図したよりも多かれ少なかれ一致したり、エッジ ケースで失敗したり、特定の入力で壊滅的なバックトラッキングが発生したりする可能性があります。代表的な入力に対して対話的にパターンをテストすることで、コードのレビューと運用前に問題を発見します。
パターンはドキュメントからも恩恵を受けます。正規表現を、一致する必要がある入力と一致すべきでない入力の横に表示すると、意図が明示されます。将来のメンテナ (6 か月後のあなたも含む) は、巧妙なワンライナーを評価するよりも、文書化されたテスト ケースを評価します。
パターンを入力し、テスト入力を入力し、ライブで強調表示された一致を確認します。
JavaScript 正規表現は ECMAScript 仕様に従います。主な機能: 文字クラス ([abc]、[^abc])、量指定子 (*、+、?、{n,m})、代替 (|)、グループ化 ((...))、グループのキャプチャと非キャプチャ、先読みと後読み (最新のエンジン)、後方参照、名前付きグループ、Unicode プロパティ エスケープ (u フラグ付き)、エスケープ シーケンスの標準セット。
PCRE および Python との重要な違い: 後読みサポートは JavaScript (2018 以降) で最近追加されました。名前付きグループは (?<name>...) 構文を使用します。一部の Unicode エスケープでは、正しく機能するために u フラグが必要です。言語を越えた使用を目的としたパターンは、各ターゲットのドキュメントと照合して確認する必要があります。
パフォーマンス: バックトラッキング ベースの正規表現エンジン (JavaScript を含むほとんどのエンジン) は、特定の病的パターンに対して壊滅的なバックトラッキングを引き起こす可能性があります。テスターがハングするようなテストは、パターンを単純化する必要があることを示しています。通常は、ネストされた量指定子やあいまいな代替を避けることによって行われます。