我想处理字符串数据集并将“-”替换为“.” 我有这个数据集:
AUDI XXX-R 2-0TS
AUDI XXX-R 2-0T
AUDI X-R 2-0
我希望将“-”替换为“.”所以所有出现 number-number** 的地方都应该替换为 number.number**
我尝试添加以下正则表达式模式,但它也替换了字母表的“-”
[^a-z-A-Z]?(\d)-(\d)?[a-zA-Z]?[a-z-A-Z]
我需要这样一种模式,无论字符串是什么,两个数字之间的“-”都应该替换为“.”
最佳答案
我们可以使用lookaround constructs [regular-expressions.info]为此:
from re import compile as recompile
rgx = recompile(<b>r'(?<=\d)[-](?=\d)'</b>)
对于这个 rgx
,我们可以这样替换:
>>> rgx.sub('.', 'AUDI XXX-R 2-0TS AUDI XXX-R 2-0T AUDI X-R 2-0')
'AUDI XXX-R 2.0TS AUDI XXX-R 2.0T AUDI X-R 2.0'
如果右边的数字是可选的,我们可以省略它,比如:
rgx = recompile(<b>r'(?<=\d)[-]'</b>)
因此,这也将用 3.A
替换 3-A
。
关于python - 如何在 Python 中使用 re 替换两个数字之间的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56941501/