2011-07-23 10 views
1

([\ w - ] +)+ [\ w - ] +(/ [\ w- ./?% & =] *)? 私はURLの検証に上記の式を使用しています。しかし、問題は私が 'www.yahoo'だけを与え、エラーメッセージが表示されない保存ボタンを押すことです。解決策を提示してください。ASP.netのURLの正規表現検証

ありがとう

+0

ここでは(多少)のポスト重複します。http:// stackoverflowの.com/questions/827557/pythonでの正規表現付きのhow-do-you-validate-a-url –

答えて

3

まあ、私はポストのpythonの多くを関連していることを推測します。 ASP.NETでも同様のことが起きるかもしれません。

しかし、あなたはそれを自分で解析したい場合は、正規表現を提供し、付録B内のコンポーネントにそれを壊すRFC 2396 (URI Generic Syntax)、を参照してください:

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))? 
    12   3 4   5  6 7  8 9 

上記の2行目の数字がありますアシスタントのみ 可読性。それらは各サブタイプの参照点(すなわち、各ペアの括弧)を示す。部分式に一致する値は$ です。

は、クエリコンポーネントの場合のように、成分が存在しないことを示す
$1 = http: 
    $2 = http 
    $3 = //www.ics.uci.edu 
    $4 = www.ics.uci.edu 
    $5 = /pub/ietf/uri/ 
    $6 = <undefined> 
    $7 = <undefined> 
    $8 = #Related 
    $9 = Related 

:たとえば、以下の部分式マッチで

http://www.ics.uci.edu/pub/ietf/uri/#Related 

結果に 上記の式に一致します上記の例。 したがって、我々は逆の方向に進んで、四つの成分の値と

scheme = $2 
    authority = $4 
    path  = $5 
    query  = $7 
    fragment = $9 

として 断片を決定することができ、我々は、セクション5.2のステップ7において、アルゴリズムを使用してそのコンポーネントからURI参照 を再作成することができ。

EDIT

グーグルのビットの後、私はASP.NETでこれを見つけた:System.Uri、例えば:

Uri uri = new Uri("http://www.ics.uci.edu/pub/ietf/uri/#Related"); 
Console.WriteLine(uri.AbsoluteUri); 
Console.WriteLine(uri.Host);