url1 = http://xyz.com/abc
url2 = http://xyz.com//abc
Я хочу написать regex
, что проверки и url1
и url2
Как написать регулярное выражение для этого выражения?
url1 = http://xyz.com/abc
url2 = http://xyz.com//abc
Я хочу написать regex
, что проверки и url1
и url2
Как написать регулярное выражение для этого выражения?
Почему бы просто не использовать urlparse
вместо этого?
http://\w+\.\w+//?\w+
Ответ зависит от того, хотите ли вы разобрать URL-адреса вообще или просто задаться вопросом, как обращаться с дополнительной косой чертой.
В первом случае, я согласен с Amber, что вы должны использовать urlparse.
Во втором случае используют ?
после косой черты в вашем выражении:
http://xyz.com//?abc
?
в регулярном выражении означает, что предыдущий элемент является необязательным (т.е. может появиться ноль раз или один раз).
Вы можете использовать это регулярное выражение:
\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
надеюсь, что это помогает.
Согласен; регулярные выражения не подходят для URI, адресов электронной почты или разметки. –
@ Delan: Я уверен, что использование регулярных выражений для URI полностью. Они даже дают вам возможность разобрать URI в RFC 3986. –
Хотя большинство URI просты, есть некоторые причуды и сложности, как и с адресами электронной почты, что делает некоторые ложные срабатывания и негативы. Я не помню, кто, но кто-то написал регулярное выражение, которое проверяет адреса электронной почты именно на spec как доказательство этой концепции и заполняет страницу. –