python - Python正则表达式删除一些标点符号周围的空格
问题描述
这些是示例:
s1 = "hello 11 : 23 pm"
-->"hello 11:23 pm"
s2 = "hello 10, 000 dollars"
-->"hello 10,000 dollars"
s3 = "hello 10. 213 percent"
-->"hello 10.213 percent"
s4 = "hello 11 : 23 pm, 10, 000 dollars, 10. 213 percent"
-->"hello 11:23 pm, 10,000 dollars, 10.213 percent"
如何使用正则表达式将左侧字符串转换为右侧字符串?
解决方案
您可以使用以下方法将任何前后跟一个数字(中间有一些空格)的标点符号替换为它本身(不带空格)re.sub
:
import re
s1 = "hello 11 : 23 pm"
s2 = "hello 10, 000 dollars"
s3 = "hello 10. 213 percent"
s4 = "hello 11 : 23 pm, 10, 000 dollars, 10. 213 percent"
for s in [s1, s2, s3, s4]:
new = re.sub(r'(?<=\d)\s*([:,.])\s*(?=\d)', r'\1', s)
print(new)
输出:
hello 11:23 pm
hello 10,000 dollars
hello 10.213 percent
hello 11:23 pm, 10,000 dollars, 10.213 percent
推荐阅读
- c# - Azure - 使用 MSI 的替代方法对控制台应用程序进行身份验证
- javascript - 在 Node.js/Javascript 中,如何检查值是否存在于多维数组中?
- javascript - 如何在绑定函数上强制使用不同的指针
- angular - 链 observables 加载依赖数据
- android - 为什么我不能使用 ConstaintLayout 属性
- apache-camel - 如何在 camel-ftp 启动之前添加日志消息?
- javascript - 仅在 javascript 中显示前 n 个复选框/元素
- javascript - 动态样式组件标签名称
- c# - 从 SQL Server Express 读取数据时出错
- windows - Gitlab windows Runner lastcontact 显示从不