如何从python中的字符串中删除letter-dot-letter(例如F.B)的组合?我尝试使用正则表达式:
abre = re.sub(r"\b\w+\.\w+@",'',abre)
但它不会删除这些序列,只是打印出相同的未更改的字符串。我也尝试删除所有点,然后删除小于2个字母的单词,但在这种情况下,我松散了真实的单词。
我拥有的:C.P.A。认证计划,会计
我想得到的:认证计划,会计
序列的长度并不总是已知,字母也是未知的。
答案 0 :(得分:1)
您似乎想要删除由点分隔的大写字母组成的单词。
使用
abre = re.sub(r"\b(?:[A-Z]\.)+(?!\w)",'',abre)
请参阅regex demo。要同时删除尾随空格,您可以在末尾添加\s*
。如果必须至少有两个字母,请将+
替换为{2,}
。
<强>详情:
\b
- 领先的字边界(?:[A-Z]\.)+
- 一个或多个序列
[A-Z]
- 一个大写的ASCII字母\.
-a dot (?!\w)
- 后面没有单词char 答案 1 :(得分:0)
您可以使用replace
:
>>> string="rgoa.bwtg.rgqra.bergeg"
>>> string.replace("a.b", "")
'rgowtg.rgqrergeg'