1

次のシナリオをチェックする必要があるウェブサイトのURLをチェックする正規表現を作成しています:
パス:

- www.example.com
- example.com
- www.example.com/something
- example.com/something

1 つのケース (www.example) を除くすべての場合に完全に機能します。このケースをどのように処理できます

私の正規表現:

^[a-zA-Z0-9][a-zA-Z0-9]+([.][a-zA-Z0-9]+)+(/.*)?$

誰でも助けてくれますか?

ありがとう。

4

5 に答える 5

1

これを試してください:

^(www\.)?(?!www)[a-zA-Z0-9]+\.[a-zA-Z]{2,6}/?[a-zA-Z0-9]+$
于 2013-03-27T09:28:05.830 に答える
1

これが私が得ることができる最高のものです

(www.){1}[a-zA-Z0-9]+[.]{1}[\w]+[/\w]*

結果

www.example.com     - true
www.example.com/    - true
www.example.com/xyx     - true
www.example.com/xy/s/   - true
www.example.        - False
www.example         - False

これは 'example.com' テスト済み @ http://gskinner.com/RegExr/を受け入れないことに注意してください

于 2013-03-27T09:28:47.793 に答える
0

これを試して:

_^(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)(?:\.(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)*(?:\.(?:[a-z\x{00a1}-\x{ffff}]{2,})))(?::\d{2,5})?(?:/[^\s]*)?$_iuS

ただし、クレジットを請求することはできません。ここからヤンクしました:

http://mathiasbynens.be/demo/url-regex

彼らは、各式に対する各ケースの合格/不合格を含む、多くの式を含む合理的なチャートを持っています。

于 2013-05-07T18:11:54.000 に答える
0

これは、Django 1.5.1 で使用される正規表現を検証する実際の URL です。

import re
regex = re.compile(
        r'^(?:http|ftp)s?://'  # http:// or https://
        r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|'  # domain...
        r'localhost|'  # localhost...
        r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|'  # ...or ipv4
        r'\[?[A-F0-9]*:[A-F0-9:]+\]?)'  # ...or ipv6
        r'(?::\d+)?'  # optional port
        r'(?:/?|[/?]\S+)$', re.IGNORECASE)

これは、ipv4 と ipv6 の両方のアドレスと GET パラメータを処理します。

こちらのコードの44 行目にあります。

于 2013-05-07T17:57:44.820 に答える
-1

最良の正規表現ではありませんが、多くの場合に機能します:

^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}(/.*)*$

編集:

^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+(com|org|info|biz|us)/?([^/]*)$

末尾のスラッシュを許可するには:

^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+(com|org|info|biz|us)/?([^/]*)/?$
于 2013-03-27T09:28:51.023 に答える