python - python 正则表达式在数字和给定字符之间添加空格
问题描述
我一直在寻找解决方案,但没有成功。我真的不擅长 REGEX。我正在尝试在数字和字符之间添加空格。
text = "Split XXTX99V 23...490V -23V 34-499V".
预期输出:Split XXTX99V 23...490 V -23 V 34-499 V
.
我的代码:
pattern = r'(?<=\d)V(?=[\s,-]|$)'
re.sub(pattern,' V', text, flags=re.I)
output:
"Split XXTX99 V 23...490 V -23 V 34-499 V"
如何除“XXTX99V”添加空间?
解决方案
您可以匹配并捕获<letter><digits>V
到第 1 组,并使用替换匹配您的模式,然后分析作为替换参数传递的 lambda 中的匹配数据对象并相应地替换。
正则表达式看起来像
([A-Za-z]\d+V)|(?<=\d)V(?=[\s,-]|$)
请参阅正则表达式演示。它基本上是lambda([A-Za-z]\d+V)|YOUR_REGEX
中的值。请参阅Python 演示:(...)
x.group(1)
import re
text = 'Split XXTX99V 23...490V -23V 34-499V'
pattern = r'([A-Za-z]\d+V)|(?<=\d)V(?=[\s,-]|$)'
print(re.sub(pattern, lambda x: x.group(1) or ' V', text, flags=re.I))
# => Split XXTX99V 23...490 V -23 V 34-499 V
推荐阅读
- angular - 使用 Spring Boot 部署 Angular 应用程序(在 AWS 上)
- jhipster - 如何添加屏幕以查看 Jhipster 中的实例日志?
- java - 在存在的 Firebase 用户上获取 NullPointerException
- javascript - 如何在 ExpressJS 中逐行上传和读取大文件?
- gnuplot - gnuplot:如何使用“不均匀”数据获得正确的等高线水平值?
- sql-server - TSQL 查询 - 如何让 WHERE 条件“加起来”?
- c# - 错误 MSB3325:无法导入以下密钥文件:csc.pfx。密钥文件可能受密码保护
- php - 使用 php 在 API 的 url 中传递日期/日期时间
- python - 将给定变量与 Python 中结构化 JSON 中的值匹配
- spring - jersey-spring5 与另一个 spring 库冲突?