2011-08-01 13 views
-3

ユーザーは以下のいずれかの形式でそれを書くことができるはずURLの正規表現のhttp/httpsで始まるか、WWW

http://www.microsoft.com または https://www.microsoft.com または www.microsoft.com

プログラミング言語:C#

+0

サブドメインが 'www'でなければならないと言いますか?これまでに何を試しましたか?どのようなプログラミング言語を使用していますか? –

+0

(http + https + )E * .E * .E *言語に依存しない正規表現表記で...最初のE *をwwwに置き換えることができます... EはURLのすべての有効な記号のセットです。 – Patrick87

+0

私はasp.netを使用しており、テキストボックスに入力されたURLを検証する必要があります –

答えて

5

これは、ほとんどの正規表現プロセッサのために働く必要があります。

/((?:https?\:\/\/|www\.)(?:[-a-z0-9]+\.)*[-a-z0-9]+.*)/i 
012 - なし
  • マッチ少なくとも一つ以上の有効なドメインの文字が続く

    • http://で始まる何か、https://、またはwww.
    • (AZ、0-9、またはを):これは一致して何

      大文字と小文字の区別(/i

    • それはこれを一致するように、それはは、ホワイトスペースを強制しません:blahwww.domain.com、およびを返しますスペースを適用する場合は、最初に\sを追加しますが、一致する文字列の先頭にスペースを追加する必要があります。

    (?:)ブロックは一致しないグループです。それらの特定の文字グループに番号が割り当てられないようにします。正規表現プロセッサに問題がある場合は、一致するグループ()に置き換えることができます。グループ1は常にURL全体です。

    厳密には厳密ではありませんが、すべての標準ドメイン名に一致します(ただし、無効なドメイン名を含む可能性があります)。

    また、次回は、正規表現プロセッサの機能サポートが大きく異なるため、プログラミング言語やコンテキストを含めることもできます。 http | https | ftsを使用せずに

  • +0

    Hi Overzealous、 私はwww.microsoft.comを試しました。それは動作しません。 –

    +0

    私はそれを試したところ、うまくいった。私は他に何を教えていいのかわからない、あなたの質問はかなり曖昧だった、あなたのコメントです。 – OverZealous

    +1

    問題はおそらく、JavaScriptでは使用されているが.NET正規表現では使用されていない区切りスラッシュにあります。私はOPの曖昧さに同意します。正規表現にアンカーを追加することもできます。不要なバックスラッシュを削除します。 –

    0

    http | https | ftsを使用して
    Var url = /^((www|WWW)\.){1}?([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+(\.[a-zA-Z0-9]+)*)$/; 
    

    var url = /^((http|ftp|https):\/\/|((www|WWW)\.)){1}?([a-zA-Z0-9]+(\.[a-zA-Z0- 9]+)+(\.[a-zA-Z0-9]+)*)$/;