我必须将文字与此方案相匹配:
capture [\w\-\/]* wich are not ['] (\1)
capture [']+ wich follow (\2)
and replace \2\1\2 with \1
实施例:
my text is: l''''text'''
right output: l'text
我试过了:
re.sub(r"(\5)(?=((([\w\-\/](?<!'))+)('+)))", r"\2", text)
答案 0 :(得分:2)
您可以匹配字符串后面的先前匹配的引号:
('+)([\w/-]+)\1
\1
匹配完全匹配的相同文本组。
https://regex101.com/r/zQ0hM2/2的在线演示。
Python会话演示:
>>> import re
>>> text = "l''''text'''"
>>> re.sub(r'''('+)([\w/-]+)\1''', r'\2', text)
"l'text"