У меня есть строка, определенная пользователем. Я хочу использовать его в регулярном выражении с небольшим улучшением: поиск по трем апострофам вместо одного. Например,Эскиз строки регулярного выражения unicode в Python
APOSTROPHES = re.escape('\'\u2019\u02bc')
word = re.escape("п'ять")
word = ''.join([s if s not in APOSTROPHES else '[%s]' % APOSTROPHES for s in word])
Это хорошо работает для латино, но для списка юникода понимание дает следующую строку: "[\\'\\\\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]\я\т\ь"
Почему бы просто не заменить '' ''' ''' '\\ u2019 \\ u02bc'' после * применения 're.escape'? –