Python字符串特定句号替换:保留句末句号,移除数字间句号
解决Python字符串移除数字及数字间句号的问题
我来帮你搞定这个字符串处理的问题!你需要把包含数字的字符串处理成只保留字母和句末句号的形式,之前的正则因为会保留数字里的小数点,导致出现了多余的符号,咱们换个思路来解决:
核心思路
先精准匹配并移除所有整数或小数形式的数字(包括数字里的小数点),再处理移除数字后可能出现的多余空格,就能得到你想要的结果。
完整代码实现
import re # 原字符串 s = """ Bob sent some money to Ana. It was 10.23 dollars. Ana thanked him. """ # 第一步:移除所有整数或带小数点的小数 processed_str = re.sub(r'\b\d+(\.\d+)?\b', '', s) # 第二步:合并连续空格并去除首尾多余空格 processed_str = re.sub(r'\s+', ' ', processed_str).strip() print(processed_str) # 输出结果:Bob sent some money to Ana. It was dollars. Ana thanked him.
正则表达式解释
\b:单词边界,确保我们匹配的是独立的数字(不会误匹配字符串中间夹杂的数字,比如"abc123"里的123)\d+:匹配一个或多个数字(对应数字的整数部分)(\.\d+)?:可选的小数部分,\.匹配小数点,\d+匹配小数位数字,?表示这部分可以不存在(也就是支持整数)
这样处理后,既不会留下数字里的小数点,也能完美保留句末的句号,同时让空格更规范。
内容的提问来源于stack exchange,提问作者Baktaawar
相关产品推荐
相关产品推荐

