[英]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
之后的额外字符以删除空格。
请使用正则表达式尝试以下代码,我在其中寻找至少两次可以消除单个字符问题的字符。
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.