繁体   English   中英

Python正则表达式仅删除两个1个字母单词之间的空格

[英]Python regex remove spaces only between two 1 letter words

我尝试编写如下代码:

输入:“ ab ccc”->“ ab ccc”

输入:“ aa bb”->“ aa bb”

输入:“ aa bb cd”->“ aa bb cd”

我成功编写了一个regexp模板,该模板可以找到“ ab”大小写,但是我不确定如何仅删除空格。 这是我的尝试:

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)

您应该能够将这些单词与

\b([a-z]) (?=[a-z]\b)

然后替换为

\g<1>

这将匹配一个字母单词(由单词边界确保)并捕获它。 然后匹配一个空格,并确保其后是另一个单个字母词。 替换是第一个被捕获的组。

Python中

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

另请参阅https://regex101.com/r/y2chHw/1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM