删除python中字符串上的任何单个字母

Kub*_*888 4 regex string text python-2.7

我想删除python中字符串中的任何单个字母.

例如:

input: 'z 23rwqw a 34qf34 h 343fsdfd'
output: '23rwqw 34qf34 343fsdfd'
Run Code Online (Sandbox Code Playgroud)

试图用正则表达式弄清楚一段时间没有成功.我知道如何将某些字符/符号中的东西分成两部分,而不是我想要做的事情.

我一直在修修补补

re.sub(r'^[^ ]*', '', text)
Run Code Online (Sandbox Code Playgroud)

Sai*_*ait 10

>>> ' '.join( [w for w in input.split() if len(w)>1] )
'23rwqw 34qf34 343fsdfd'
Run Code Online (Sandbox Code Playgroud)


Tes*_*ler 7

我希望有比这更简洁的正则表达式方式,但是:

>>> import re
>>> text = 'z 23rwqw a 34qf34 h 343fsdfd'

>>> re.sub('(\\b[A-Za-z] \\b|\\b [A-Za-z]\\b)', '', text)
'23rwqw 34qf34 343fsdfd'
Run Code Online (Sandbox Code Playgroud)

它是单词边界、单个字母、空格和单词边界。它是双倍的,因此它可以匹配字符串开头或结尾的单个字符z_且不_z留空格,以及中间的字符_z_留一个空格。


Eir*_*and 6

import re
text = "z 23rwqw a 34qf34 h 343fsdfd"
print re.sub(r'(?:^| )\w(?:$| )', ' ', text).strip()
Run Code Online (Sandbox Code Playgroud)

或者

tmp = re.sub(r'\b\w\b', ' ', input)
print re.sub(r'\s{2,}', ' ', tmp).strip()
Run Code Online (Sandbox Code Playgroud)