好的,我在一些字符串上进行unicode正则表达式匹配。
这些是有问题的字符串。不是两个单独的行,而是两个单独的字符串。
\u2018Mummy\u2019 Reboot May Get \u2018Mama\u2019 Director
\u2018Glee\u2019 Star Grant Gustin to Play The Flash in \u2018Arrow\u2019 Season 2
我正在使用这个正则表达式来解析unicode引号中的标题。
regex = re.compile("\\u2018[^(?!\\u2018$)]*\\u2019",re.UNICODE)
使用regex.findall()返回我
['u2018Mama\\u2019']
和
['u2018Glee\\u2019', 'u2018Arrow\\u2019']
这提出了两个我无法弄清楚的问题。为什么不回归\ u2018,最初是哪个??
其次,有什么不同。我看不出来。最后,我用'取代\ u2018和\ u2019'。 然后使用这个正则表达式。
re.compile("'[^']*'")
它在两个字符串中都匹配。这有什么区别?我在unicode正则表达式中缺少什么?
提前谢谢。
答案 0 :(得分:1)
#coding=utf8
import re
s=u'''\u2018Mummy\u2019 Reboot May Get \u2018Mama\u2019 Director
\u2018Glee\u2019 Star Grant Gustin to Play The Flash in \u2018Arrow\u2019 Season 2'''
print s
regex = re.compile(ur"‘[^(?!‘$)]*’",re.UNICODE)
m = regex.findall(s)
print m
[u'\ u2018Mummy \ u2019',u'\ u2018Mama \ u2019',u'\ u2018Glee \ u2019',u'\ u2018Arrow \ u2019']