我想删除首字母缩略词中的点,但不删除 python 字符串中域名中的点。例如, 我想要字符串
'a.b.c. test@test.com http://www.test.com'
成为
'abc test@test.com http://www.test.com'
到目前为止我制作的最接近的正则表达式是
re.sub('(?:\s|\A).{1}\.',lambda s: s.group()[0:2], s)
结果
'ab.c. test@test.com http://www.test.com'
似乎要使上述正则表达式起作用,我需要将正则表达式更改为
(?:\s|\A|\G).{1}\.
但是在 python 中没有匹配结束标记 (\G)。
编辑:正如我在评论中提到的,字符串没有特定的格式。这些字符串包含非正式的人类对话,因此可能包含零个、一个或多个首字母缩写词或域名。如果可以避免编写“真正的”解析器,那么一些错误对我来说是可以接受的。
请您参考如下方法:
如果您的数据总是这样格式化,那么为什么不通过在空格上拆分将您的数据分成 3 部分。
然后从第一个元素中删除句点并使用 join 重新合并这些部分就非常简单了。
