2012-02-06 10 views
-1

私はちょうど正規表現を使用する方法を学び始めました。私はURLに一致するものを作成しようとしています。これまでのところ私が持っている:あなたが書いた正規表現が良いスタートですRegex URL Match

(http://|https://|www|\w)+\.[\w]{2,4}[^\s]+ 

誰も私にこれがどのように見えるかについていくつかのフィードバックやアドバイスを与えることができ、または多分より良い

+0

特定の質問がありますか? – ggreiner

+1

正直、私は良いものをオンラインで見ています。 URLは信じられないほど複雑なものではありませんが、あなたが考えていないようなフリンジケースが常にあります。 – climbage

+1

[文字列が有効なURLであるかどうかをチェックするのに最適な正規表現は何ですか?](http://stackoverflow.com/questions/161738/what-is-the-best-regular-expression-to-check -if-a-string-is-a-valid-url) – mario

答えて

1

に私を指す、正規表現の真の力をそれは非常に...よく...強力です:) URLの構造にはまだ多くの違いがありますが、これはまだOKと考えられています。

詳細については、Regex Referenceを参照してください。すべての文字の意味を理解してください。

、あなたはコミュニティが必要なもののために過度に複雑かもしれthis one

このようなサイトに行くことによって発生するものかどうかを確認することができますが、これはURLmatchingのためのよく書かれた正規表現です:^(((ht|f)tp(s?))\://)?(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.(com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk)(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\;\?\'\\\+&%\$#\=~_\-]+))*$

私はこのオンラインRegex Helperを使用して、正規表現文字列を実際にコードから実行する必要なしにテストすることができます。

+0

ええ、私はgskinner.com/regexrを使用しています。 – mcbeav

0

これを試してみてください:^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$使用方法によっては、^と$を最初と最後から削除することをお勧めします。