我有一个用户定义的字符串。 我想用它在小改进的正则表达式:由三个撇号而不是一个。 例如,在Python中转义正则表达式unicode字符串
APOSTROPHES = re.escape('\'\u2019\u02bc')
word = re.escape("п'ять")
word = ''.join([s if s not in APOSTROPHES else '[%s]' % APOSTROPHES for s in word])
它的工作原理很好的拉丁,但对Unicode的列表理解给出了以下字符串: "[\\'\\\\u2019\\\\u02bc]\xd0[\\'\\\\u2019\\\\u02bc]\xbf[\\'\\\\u2019\\\\u02bc][\\'\\\\u2019\\\\u02bc][\\'\\\\u2019\\\\u02bc]\xd1[\\'\\\\u2019\\\\u02bc]\x8f[\\'\\\\u2019\\\\u02bc]\xd1[\\'\\\\u2019\\\\u02bc]\x82[\\'\\\\u2019\\\\u02bc]\xd1[\\'\\\\u2019\\\\u02bc]\x8c"
看起来它发现两个字符串中的反斜杠,然后替换撇号
而且,print(list(w for w in APOSTROPHES))
给出['\\', "'", '\\', '\\', 'u', '2', '0', '1', '9', '\\', '\\', 'u', '0', '2', 'b', 'c']
。
我该如何避免它?我想"\п[\'\u2019\u02bc]\я\т\ь"
为什么不在'应用're.escape'后用'['\\ u2019 \\ u02bc]'*替换'''''? –