我尝试编写一个行为类似的代码:
输入:“a b ccc” - > “ab ccc”
输入:“aa bb” - > “aa bb”
输入:“aa bb c d” - > “aa bb cd”
我成功编写了一个找到“a b”案例的正则表达式模板,但我不确定如何只删除空格。 这是我的尝试:
import re
sentence = "a b cc"
print(sentence)
pattern = re.compile(r'[^\s]{1}\s[^\s]{1}')
sentence = re.sub(pattern, 'xx', sentence)
print(sentence)
答案 0 :(得分:4)
您应该能够将这些单词与
匹配\b([a-z]) (?=[a-z]\b)
然后替换为
\g<1>
这将匹配单个字母单词(由单词边界确保)并捕获它。然后匹配一个空格并确保其后跟另一个单字母单词。替换是第一个被捕获的组。
中import re
sentence = "a b cc e ddd f g h"
pattern = re.compile(r'\b([a-z]) (?=[a-z]\b)', re.I)
sentence = re.sub(pattern, r'\g<1>', sentence)
print(sentence)
将输出ab cc e ddd fgh