我有这样的正则表达式:
re.compile(r"((https?):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)", re.MULTILINE|re.UNICODE)
但这不包括hashbangs (#!)
。我需要改变什么才能让它发挥作用?我知道我可以添加!与#@%
等分组,但会选择类似
Check this out: http://example.com/something/!!!
我想避免这种情况。
答案 0 :(得分:10)
请勿尝试为匹配的网址制作自己的正则表达式,请使用已解决此类问题的其他人,例如this one。
答案 1 :(得分:3)
它可能很长但实际上我的工作非常好。请试试这个
((http|https)\:\/\/)?[a-zA-Z0-9\.\/\?\:@\-_=#]+\.([a-zA-Z]){2,6}([a-zA-Z0-9\.\&\/\?\:@\-_=#])*
它匹配以下所有示例
http://wwww.stackoverflow.com
abc.com
http://test.test-75.1474.stackoverflow.com/
stackoverflow.com/
stackoverflow.com
rfordyce@broadviewnet.com
http://www.example.com/etcetc
www.example.com/etcetc
example.com/etcetc
user:pass@example.com/etcetc
(www.itmag.com)
example.com/etcetc?query=aasd
example.com/etcetc?query=aasd&dest=asds
http://stackoverflow.com/questions/6427530/regular-expression-pattern-to-
match-url-with
www/Christina.V.Scott@gmail.com
line.lundvoll.nilsen@telemed.no.
s.hossain@unsw.edu.au
s.hossain@unsw.edu.au
答案 2 :(得分:1)
这是一个常见问题,请使用默认库。
对于python使用urlparse
答案 3 :(得分:0)
我承认我有点担心一个需要像这样的正则表达式来匹配URL的应用程序。这就是说,这似乎对我有用:
((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)
答案 4 :(得分:0)
基于 this link,我们可以使用库验证器
例如:
import validators
valid=validators.url('https://codespeedy.com/')
if valid==True:
print("Url is valid")
else:
print("Invalid url")