删除首字母缩略词中的点而不是域名中的正则表达式是什么?

Chr*_*lis 1 python regex

我想删除首字母缩略词中的点,但不删除python字符串中的域名.例如,我想要字符串

'a.b.c. test@test.com http://www.test.com'
Run Code Online (Sandbox Code Playgroud)

成为

'abc test@test.com http://www.test.com'
Run Code Online (Sandbox Code Playgroud)

我到目前为止最接近的正则表达式是

re.sub('(?:\s|\A).{1}\.',lambda s: s.group()[0:2], s)
Run Code Online (Sandbox Code Playgroud)

结果是

'ab.c. test@test.com http://www.test.com'
Run Code Online (Sandbox Code Playgroud)

似乎上面的正则表达式工作,我需要将正则表达式更改为

(?:\s|\A|\G).{1}\.
Run Code Online (Sandbox Code Playgroud)

但是在python中没有匹配标记的结束(\ G).

编辑:正如我在评论中提到的,字符串没有特定的格式.这些字符串包含非正式的人工对话,因此可能包含零个,一个或多个首字母缩略词或域名.如果它能使我免于编写"真正的"解析器,那么我可以使用一些错误.

cho*_*ida 5

如果您的数据总是这样格式化,那么为什么不通过拆分空间将数据拆分为3个部分.

然后从第一个元素中删除句点并使用join重新合并部分非常简单.