python中有没有办法替换字符串但保留中间字符完整?

有没有什么方法可以替换文件中所有出现的字符串,同时保留字符串中间的未知字符完好无损?例如,将字符串 'ab{unknown}cde' 替换为 '(ab{unknown}cde)'



交互式爱情
浏览 41回答 2
2回答

繁星淼淼

这与其说是替换,不如说是将匹配的子字符串括在括号中。>>> re.sub('(ab.cde)', r'(\1)', '123abxcde456')'123(abxcde)456'模式就是正则表达式ab.cde。模式中的括号表示整个匹配是一个捕获组。替换文本是一对括号,其中包含(第一个)组匹配的内容。您还可以指定一个接收正则表达式匹配结果的函数,而不是替换文本。如果没有别的办法,这可以让您避免在正则表达式中显式定义捕获组。def surround(m):    return f'({m.group()})'new_str = re.sub('ab.cde', surround, '123abxcde456')assert new_str == '123(abxcde)456'

米琪卡哇伊

您可以使用正则表达式来识别已知部分并用某些通配符替换未知部分。在你的例子中,from re import subreplaced = sub('(ab.cde)', r'(\1)', 'asdasdab5cdeasdasd')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python