我有一個用戶定義的字符串。 我想用它在小改進的正則表達式:由三個撇號而不是一個。 例如,在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]'*替換'''''? –