繁体   English   中英

删除空格分隔的单个字符

[英]Remove space delimited single characters

我有这样的文字:

the quick brown fox 狐狸 m i c r o s o f t マ イ ク ロ ソ フ ト jumps over the lazy dog 跳過懶狗 best wishes : John Doe

什么是可以删除单个字符的好正则表达式(对于 python),以便 output 看起来像这样:

the quick brown fox 狐狸 jumps over the lazy dog 跳過懶狗 best wishes John Doe

我尝试了\s{1}\S{1}\s{1}\S{1}一些组合,但它们最终不可避免地删除了比我需要的更多的字母。

非正则表达式版本可能如下所示:

source_string = r"this is a string I created"

modified_string =' '.join([x for x in source_string.split() if len(x)>1])

print(modified_string)

您可以将以下内容替换为空字符串:

(?<!\S)\S(?!\S).?

匹配一个两边都没有非空格(即被空格包围)的非空格,加上后面的字符(如果有的话)。

我使用否定环视的原因是因为它巧妙地处理了字符串大小写的开始/结束。 我们匹配\S之后的额外字符以删除空格。

Regex101 演示

请使用正则表达式尝试以下代码,我在其中寻找至少两次可以消除单个字符问题的字符。

s='the quick brown fox 狐狸 m i c r o s o f t マ イ ク ロ ソ フ ト jumps over the lazy dog 跳過懶狗 best wishes : John Doe'
output = re.findall('\w{2,}', s)
output = ' '.join([x for x in output])
print(output)

暂无
暂无

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

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