Python 如何将正则表达式应用于unicode

Python 如何将正则表达式应用于unicode,python,regex,unicode,Python,Regex,Unicode,我正在尝试将正则表达式与unicode进行匹配。它应该只拾取括号内的数字。模式: ^.*?\([^\d]*(\d+)[^\d]*\).*$ 但它在这个unicode上不起作用: 152.6\xa0MiB\xa0(160008742\xa0字节) unicode标志是否足够 注:预期组匹配为160008742您将.group()与.group(1)混淆了。后者就是你要找的。前者返回匹配的整个文本,如文档所示。re.compile(r“^.*”([^\d]*(\d+[^\d]*).$”,re.U

我正在尝试将正则表达式与unicode进行匹配。它应该只拾取括号内的数字。模式:

^.*?\([^\d]*(\d+)[^\d]*\).*$
但它在这个unicode上不起作用:

152.6\xa0MiB\xa0(160008742\xa0字节)

unicode标志是否足够


注:预期组匹配为
160008742

您将
.group()
.group(1)
混淆了。后者就是你要找的。前者返回匹配的整个文本,如文档所示。

re.compile(r“^.*”([^\d]*(\d+[^\d]*).$”,re.UNICODE.match(u“152.6\xa0MiB\xa0(160008742\xa0Bytes)”)
为我成功匹配(Python 2.7和3.3)。@ArminRigo我仍然获得了
>re.compile(r“^.*([^.*”([^-\d]*(\d]*)*(\d[^+).UNICODE.*)。match(re.152\xa0)(160008742\xa0Bytes)“).group()
u'152.6\xa0MiB\xa0(160008742\xa0Bytes)“
@ArminRigo I补充说,它应该只匹配brackets@Tjorriemorrie,除非
\xA0
是一个不间断的文本空格,否则括号内有两行数字。您能澄清您试图匹配的字符串吗?@MikeSamuel@ArminRigo是的,对不起,这是一个空格。我期待
160008742
go-figure;我正在使用
.group()[1]