我正在遍历一个字典,并用它的值替换字符串中的任何键。我正在搜索两个条件,在标准的python字符串格式中如下所示:if (' '+key+'' in x) or (x.startswith(key)): x = x.replace(key, matches[key])
理想情况下,我希望使用正则表达式来进行此替换。
目前我正在使用re.sub(r'(^|s)FIRST(s)', '1st', string)
它正确地实现了查找要替换的字符串的条件,但输出消耗了搜索模式中的空格字符。例如:
strings = ['FIRST BASE', 'TWENTYFIRST ST.', 'CHRISTS FIRST CHURCH', 'TWENTY FIRST']
for string in strings:
print((re.sub(r'(^|s)FIRST(s)', '1st', string)))
打印:
1stBASE
TWENTYFIRST ST.
CHRISTS1stCHURCH
TWENTY FIRST
如何在不丢失空格的情况下搜索被空格包围的字符串并替换为值?
您可以使用:
(^|s+)FIRST($|s+)
演示
或者有负面的前瞻和负面的前瞻:
(?<!S)FIRST(?!S)
演示