1

ユーザーから受信した FQDN を検証するために、C# で次のパターンを記述しました。

(`?=^.{1,254}$)(^(?:(?!\d+\.)[a-zA-Z0-9_\-]{1,63}\.?)+(?:[0-9a-zA-Z]{1,})$)

ユーザーが次の FQDN を入力できるようにします。

<name>.<letter><digit>

「aa.a1」など。「aa.a1」の場合、正規表現は FQDN を無効として検出し、「aa.1a」の場合は有効として検出します。誰かが理由を知っていますか?

4

2 に答える 2

3

RegEx を使用する代わりに、文字列を にロードしUri、さまざまなメソッドとプロパティを使用して、それが FQDN であるかどうかを判断できます。

Uri uri = new Undri(myFQDN);
string host = uri.Host;
bool isAbsolute = uri.IsAbsoluteUri;
于 2011-02-06T13:14:33.583 に答える
2

その巨大な正規表現をデコードしようとはしません。代わりにUri.IsWellFormedUriStringメソッドを使用してください。それはすでにあなたが探していることをします。

于 2011-02-06T13:18:02.453 に答える