使用正则表达式删除字符串中连续重复的子串

问题描述 投票:0回答:0
import re

input_text = "((PERS)Yo), ((PERS)Yo)      ((PERS)yo) hgasghasghsa ((PERS)Yo) ((PERS)Yo) ((PERS)Yo) ((PERS)yo) jhsjhsdhjsdsdh ((PERS)Yo) jhdjfjhdffdj ((PERS)ella) ((PERS)Ella) ((PERS)ellos) asassaasasasassaassaas ((PERS)yo) ssdsdsd"

pattern = re.compile(r'\(\(PERS\)\s*yo\s*\)(?:\(\(PERS\)\s*yo\s*\))+', flags = re.IGNORECASE)
modified_text = re.sub(pattern, '((PERS)yo)', input_text)

print(modified_text)

为什么不使用这个代码来消除字符序列的一个接一个重复出现((PERS)\s*yo\s*)

这应该是正确的输出:

"((PERS)Yo), ((PERS)yo) hgasghasghsa ((PERS)yo)  jhsjhsdhjsdsdh ((PERS)yo) jhdjfjhdffdj ((PERS)ella) ((PERS)Ella) ((PERS)ellos) asassaasasasassaassaas ((PERS)yo) ssdsdsd"
python python-3.x regex replace regex-group
© www.soinside.com 2019 - 2024. All rights reserved.