Python 如何将正则表达式应用于unicode
我正在尝试将正则表达式与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
^.*?\([^\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]