0

これが私の現在の状況です。私はほぼ完全な正規表現の読み書きができず、顧客アカウント用にユーザーからドメイン名を要求する Web サイトの一部を拡張する任務を負っています。現在、それは 1 行、1 つのドメイン名であり、以下の正規表現はうまく機能します。

(?i)^(?!.{257,})(?!.*-\\.)(?!.*?-\\.)(?:[a-zA-Z0-9-]{1,64}\\.)+(?:[a-zA-Z]{2,6})\\b

私がする必要があるのは、ユーザーがボックスに複数のドメイン名を入力できるようにすることです。1 行に 1 つ。基本的に、この正規表現をラップして、セット全体ではなく行ごとに検証を適用するだけです。

これが否定的な先読みを使用していることは知っていますが、それらが何であるかはわかりません。私が見つけたすべてのチュートリアルは、私が必要とするアイデアや概念を回避しているようです。今週末に勉強できるアイデア、リンク、コメントをいただければ幸いです。

ちなみに、私はこれを.Net MVC 3.0で実装しています。

ありがとう!

4

1 に答える 1

1

多くの Regexp フレームワークは、マッチングの全体的な動作を変更する一連の拡張オプションを提供します。

次の 2 つのリンクには、.NET と Javascript のリファレンスが含まれています。

どちらの場合も、複数行の文字列全体が正規表現に入力される場合、mオプションが探しているものになる可能性があります。

また、否定的な先読みに関する限り、Python regexp モジュールからのこの小さなスニペットは、簡潔な例を示しています ( Python Regex Moduleから):

(?!...)

... が次に一致しない場合に一致します。これは否定先読みアサーションです。たとえば、Isaac (?!Asimov) は、後に「Asimov」がない場合にのみ「Isaac」と一致します。

于 2012-06-22T23:44:17.653 に答える