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)
我希望有比这更简洁的正则表达式方式,但是:
>>> 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_留一个空格。
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)
| 归档时间: |
|
| 查看次数: |
7219 次 |
| 最近记录: |