Python正则表达式错误

Python正则表达式错误,python,regex,url,Python,Regex,Url,我在python中寻找URL regexp,在阅读了stack overflow之后,我决定使用这个:并在我的python代码中使用它 我放了这样的东西: reg_url = re.compile(r"""((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.‌​][a-z]{2,4}/)(?:[^\s()<>]+|(([^\s()<>]+|(([^\s()<>]+)))\*))+(?

我在python中寻找URL regexp,在阅读了stack overflow之后,我决定使用这个:并在我的python代码中使用它

我放了这样的东西:

reg_url =
re.compile(r"""((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.‌​][a-z]{2,4}/)(?:[^\s()<>]+|(([^\s()<>]+|(([^\s()<>]+)))\*))+(?:(([^\s()<>]+|(‌​([^\s()<>]+)))\*)|[^\s`!()[]{};:`".,<>?«»“”‘’]))""",
re.DOTALL)
reg\u url=
重新编译(r“”)(((?:[a-z][\w-]+:(?:/{1,3}}}[a-z0-9%])www\d{0,3}[.].[a-z0-9.\-]+[。‌​][a-z]{2,4}/(?:[^\s()]+|(([^\s()]+|(([^\s()]+))\*)+(?:([^\s()]+|(‌​([^\s()]+)\*)|[^\s`!()[]{};:`,«»»»»»»])“”,
关于DOTALL)
(Python 2.7)

使用该regexp运行代码后,出现以下错误:

语法错误:第60行的file
file.py
中的非ASCII字符“
\xe2
”,但未声明编码;有关详细信息,请参阅

解决此问题的最佳方法是什么?

Python有问题(在2中,而不是3中)关于输入编码,在源代码中默认为ASCII编码。在文件的第一行或第二行添加注释,沿着
#encoding:utf-8
,您将解决此问题。错误消息中链接的PEP很好地解释了这一点

然而,值得注意的是,你的regexp对我不起作用,而只是从你链接到的站点复制一个,这似乎非常不同,确实起作用。你考虑过使用的可能性吗

如果确实要使用正则表达式,请注意以下几点:

regex_a= re.compile(r"(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\".,<>?«»“”‘’]))")
regex_b = re.compile(r"""((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.‌​][a-z]{2,4}/)(?:[^\s()<>]+|(([^\s()<>]+|(([^\s()<>]+)))\*))+(?:(([^\s()<>]+|(‌​([^\s()<>]+)))\*)|[^\s`!()[]{};:`".,<>?«»“”‘’]))""", re.DOTALL)

regex_a.match("http://www.www.com/thisisatest") # returns a match object
#regex_b.match("http://www.www.com/thisisatest") # edit: actually, this just hangs...
(a-z[a-z][\w-[[[w-]以下以下以下两方面::::::[a-z[a-z][[w-[[w-]以下+以下以下以下::::::::::{1,3}[a-码>regexExExExExEx-ReReReReRe-a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)a)b)a)b;[^\s`!()\[\]{};:“\”,«»“])) regex_b=re.compile(r“”)((?:[a-z][\w-]+:(?:/{1,3}}[a-z0-9%])www\d{0,3}[.].[a-z0-9.\-]+[。‌​][a-z]{2,4}/(?:[^\s()]+|(([^\s()]+|(([^\s()]+))\*)+(?:([^\s()]+|(‌​([^\s()]+)\*)|[^\s`!()[]{};:`,«»»»“)”,re.DOTALL) 正则表达式匹配(“http://www.www.com/thisisatest)返回匹配对象 #正则表达式匹配(“http://www.www.com/thisisatest)编辑:实际上,这只是挂起。。。
在您的版本中,似乎有许多大括号、圆括号和方括号的转义已被删除,并且U+200C和U+200B字符位于奇数位置。

其中有卷曲引号和非ASCII字符:
«»“”''
。阅读PEP。我对regexp_a和b都有相同的错误,编码问题仍然存在。您是否将
#编码:utf-8
作为源代码文件的第一行或第二行?请注意,它必须在第一行或第二行;它不能在任何地方。编码是我的问题。谢谢