处理 re.sub 替换模式中捕获组的反向引用
- 2025-02-28 08:23:00
- admin 原创
- 82
问题描述:
我想要获取字符串0.71331, 52.25378
并返回0.71331,52.25378
- 即只查找一个数字、一个逗号、一个空格和一个数字,然后删除空格。
这是我当前的代码:
coords = '0.71331, 52.25378'
coord_re = re.sub("(d), (d)", ",", coords)
print coord_re
但这给了我0.7133,2.25378
。我做错了什么?
解决方案 1:
您应该使用正则表达式的原始字符串,请尝试以下操作:
coord_re = re.sub(r"(d), (d)", r",", coords)
使用当前代码,替换字符串中的反斜杠将转义数字,因此您要将所有匹配项替换为chr(1) + "," + chr(2)
:
>>> ','
'x01,x02'
>>> print ','
,
>>> print r',' # this is what you actually want
,
任何时候您想在字符串中保留反斜杠,请使用r
前缀,或转义每个反斜杠 ( \1,\2
)。
解决方案 2:
Python 将 解释为 ASCII 值 1 的字符,并将其传递给
sub
。
使用原始字符串,其中 Python 不会解释``。
coord_re = re.sub(r"(d), (d)", r",", coords)
如果您需要更多信息,re
文档的开头就对此进行了介绍。
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD