Я работаю со строками нелатинских символов.Я хочу сопоставить строки с шаблонами дублирования, такими как AAB, ABB, ABAB и т. Д. Я опробовал следующий код:
import re
patternAAB = re.compile(r'\b(\w)\1\w\b')
match = patternAAB.findall(rawtext)
print(match)
Однако он возвращает только первый символ совпадающей строки.Я знаю, что это происходит из-за захвата круглых скобок вокруг первого \ w.
Я пытался добавить захват круглых скобок вокруг всего соответствующего блока, но Python дает
error: cannot refer to an open group at position 7
Я также нашел этот метод, но у меня не сработало:
patternAAB = re.compile(r'\b(\w)\1\w\b')
match = patternAAB.search(rawtext)
if match:
print(match.group(1))
Как я могу сопоставить шаблон и вернуть всю совпадающую строку?
# Ex. 哈哈笑
# string matches AAB pattern so my code returns 哈
# but not the entire string