Regexponline-インタラクティブな正規表現アナライザーおよびエディター

ひげを生やしたジョークが1つあります。「問題があり、正規表現を使用して解決しようとすると、2つの問題が発生します。」 実際、正規表現は非常に強力で柔軟なツールであり、非常に広範な問題を解決するために使用されます。 しかし、いつものように、バランスを保つために、このような深刻なツールは非常に友好的な外観を持っています。



(<([az]+[^>]*)>)(.*)(</\2>)







そのような初心者のチュパカブラはa敬の念を抱き、知識のある人に思わず鼻をしわにさせます。 そして、あなたのガールフレンドは、彼女があなたにそのようなデザインを書いているのを見たとき、あなたがおかしいと決めるでしょう。



画像



むかしむかし、私は勤務中に正規表現で友達を作る必要がありました。 もちろん、FridlとHabréに関するいくつかの記事を読んで、私はこの合成言語を理解し始めました。 それにもかかわらず、私は別のレギュラーシーズンを書くたびに、私はすぐにブラケット、スラッシュ、ドット、プラス、疑問符、およびあなたがよく知っている他の構造の山に自分自身を埋めました。 このおridgeを理解することは、特に1か月前にタスクに戻った場合は非常に困難でした。 私は自分の創造物を理解するのに役立つ楽器を夢見ていた。 約12のサービスが1ダースでグーグル検索されましたが、それらのすべてはほとんど利益をもたらしませんでした。 ちょうどそのとき、私はこのプロジェクトの開発を始めました。



したがって、 regexponlineは、正規表現を基本コンポーネントに解析することにより、正規表現の構造を視覚化できるツールです。 一致する部分と一致しない部分を示します。 何らかの理由で目的の行に一致しない式を記述およびデバッグするのに役立ちます。



最初に、単純な合成的で説明的な例でサービスの操作を説明し、次に「from life」の例で説明します。

最初の例では、上記のボックスからこの恐怖を取り上げ、誰かがおそらくいつか使用するであろう完全に意味のある表現であることを確認します。



ブラウザ(できればchrome fresh version)を開き、アドレスhttp://regexponline.com/を入力します。 出来上がり。 システムインターフェイスは3つの論理ブロックで構成されています-正規表現をテストする行の上部を駆動し、正規表現自体の中央で(デフォルトでは、使い慣れた表現がそこに表示されます)、正規表現の構造とそれに一致するテキストが以下の表の形式で表示されます レギュラーシーズンのどの部分にもマウスを移動してみてください。 行は、一致する部分をすぐに強調表示します。 すべてのブロックは異なる色でペイントされ、同じ色はネストの1つのレベルを意味します(グループ化は括弧で行われます。つまり、ブラケット内のブラケットはネストの1つのレベルです)。 灰色-ネストのレベルがゼロ、つまり 正規表現全体または行全体、ピンク-最初、緑-2番目など。 すべてのラインとレギュラーはダブルクリックで編集されます。 一般に、すべてのブロックでマウスを前後に動かすと、正規表現の構造を最もよく理解できます。 別のより視覚的な方法は、「正規表現を展開」ボタンをクリックすることです。 正規表現は、ネストのレベルでグループ化されたコンポーネントに分解されます。



どんな正規表現であるかはすでに明らかになっていると思います。 これは、HTMLタグの開始と終了、およびそれらの間のコンテンツである行の部分と一致します。



多くの場合、グループに名前を付けると便利です。 次に、出力で、順序だけでなくこれらの名前にもインデックスが付けられた一致の配列を取得します。 正規表現では、これは特に便利です。 目的のグループをクリックして、表示されるポップアップで[名前の変更]をクリックするだけです。 もちろん、正規表現は長くなりますが、すぐに各グループの意味が明らかになります。 スクリーンショットを見てください、まだ質問が残っていますが、何ですか?



画像



もう1つの小さくても非常に便利な機能は、リアルタイム編集です。 このモードでは、正規表現へのすべての変更がその場で直接適用されます。ページを更新する必要はありません。ダブルクリックする必要はありません。「OK」を押す必要はありません。 正常に動作していない正規表現をデバッグするときに非常に便利です。



他の人のコードのリファクタリング中に、それを理解できない正規表現を見つけた場合-このサービスを開き、そこにコピーして貼り付けてください。そうすれば、はるかにわかりやすくなります。



2番目の例では、標準の電子メール検証タスクを解析することを提案します。



私は、多くのユーザーがユーザー入力をチェックし、ユーザーが ')ではなく自分の住所を指定したことを確認するタスクに直面したと確信しています。 最初のアクションは何でしたか? あなたの表現を書きますか? または、インターネットでターンキーソリューションをグーグルで検索しますか? これで、これら2つのアプローチを組み合わせることができます。 Regexponlineにはregexディレクトリがあります。 彼が腕の中で同僚に役立つと信じるなら、誰でも彼に彼自身のパターンを加えることができます。 また、仕事の結果をサーバーに保存し、後で仕事に戻ったり、友人に送信したりするためのリンクを取得できます(「共有」ボタン)。



そのため、式カタログで「電子メール」を見つけるか、具体的にあなたのために作成したリンクhttp://regexponline.com/s/uvを使用します。 開いた正規表現は、そのサイズと複雑さに脅かされ、マウスをその上に移動するか、正規表現の展開ボタンを押すだけでわかりやすくなります。



友人たち、これはやるべきこと、最終的なことを多く残した若いプロジェクトです。 よくあることですが、このツールは「自分のために」書かれていますが、他の人にとっては役立つと思いました。 誰かがあなたの正規表現の特殊文字を選ぶのに費やす時間を1、2時間節約できることを願っています。



ご清聴ありがとうございました。あなたの批判、質問、提案に感謝します。



この記事は、 Mail.Ru Technoparkプロジェクトの学生向けのコンテストの一環として書かれました。



All Articles