2010-09-14 3 views

ответ

4

Почему бы просто не использовать urlparse вместо этого?

+0

Согласен; регулярные выражения не подходят для URI, адресов электронной почты или разметки. –

+0

@ Delan: Я уверен, что использование регулярных выражений для URI полностью. Они даже дают вам возможность разобрать URI в RFC 3986. –

+0

Хотя большинство URI просты, есть некоторые причуды и сложности, как и с адресами электронной почты, что делает некоторые ложные срабатывания и негативы. Я не помню, кто, но кто-то написал регулярное выражение, которое проверяет адреса электронной почты именно на spec как доказательство этой концепции и заполняет страницу. –

0

Ответ зависит от того, хотите ли вы разобрать URL-адреса вообще или просто задаться вопросом, как обращаться с дополнительной косой чертой.

В первом случае, я согласен с Amber, что вы должны использовать urlparse.

Во втором случае используют ? после косой черты в вашем выражении:

http://xyz.com//?abc 

? в регулярном выражении означает, что предыдущий элемент является необязательным (т.е. может появиться ноль раз или один раз).

0

Вы можете использовать это регулярное выражение:

\w{4}\:\/{2}\w+\.\w+\/{1,2}\w+ 

объяснение:

\w{4} match any word character [a-zA-Z0-9_] 
    Quantifier: Exactly 4 times 
\: matches the character : literally 
\/{2} matches the character/literally 
    Quantifier: Exactly 2 times 
\w+ match any word character [a-zA-Z0-9_] 
    Quantifier: Between one and unlimited times, as many times as possible, giving back as needed 
\. matches the character . literally 
\w+ match any word character [a-zA-Z0-9_] 
    Quantifier: Between one and unlimited times, as many times as possible, giving back as needed 
\/{1,2} matches the character/literally 
    Quantifier: Between 1 and 2 times, as many times as possible, giving back as needed 
\w+ match any word character [a-zA-Z0-9_] 
    Quantifier: Between one and unlimited times, as many times as possible, giving back as needed 

надеюсь, что это помогает.

Смежные вопросы