假设我有一根像
s=""" Bob sent some money to Ana. It was 10.23 dollars. Ana thanked him.
"""
我希望输出是
Bob sent some money to Ana. It was dollars. Ana thanked him.
所以基本上只保留字母表和句号来标记句子的结尾。删除非字母字符和数字之间的句点。你知道吗
我想用
re.sub(r"[^A-za-z.\n]"," ",s)
但这很明显会使这段时间保持在0和0之间
' Bob sent some money to Ana. It was . dollars. Ana thanked him. \n\n'
我也要删除数字之间的句点,因为以后我要将文本字符串拆分为句子,这样可以查找句点或\n作为句子的结尾。如果句点是十进制数的一部分,那么使用句点也会破坏句子,这是不理想的
数字之间的句点表示它至少在一个数字之前。所以你可以用
\.+(?=\d)
来匹配这些小数点。+
量词不是必须的,但也可以匹配1.......2
这样的边缘情况:Live demo
您可能还需要删除额外的前导空格。如果是这样,那么在正则表达式中考虑它们:
Live demo
相关问题 更多 >
编程相关推荐