如何用Python正则表达式移除一位数前地址字段内的逗号?
解决地址字段逗号替换问题
我懂你的困扰——要替换地址内部的逗号,但得保留最后分隔地址和member_no的那个逗号对吧?之前的全局替换会把所有逗号都换掉,确实达不到需求。
这里可以用正则表达式的负向预查来精准匹配需要替换的逗号,只替换地址里的逗号,留下最后那个分隔数字的逗号。
解决方案代码
import re text = '52A, XYZ Street, ABC District, 2' # 只替换后面不是"空格+一位数字结尾"的逗号 cleaned_text = re.sub(r',(?! \d$)', ' ', text) print(cleaned_text)
输出结果
52A XYZ Street ABC District, 2
正则表达式解释
,:匹配目标逗号(?! \d$):这是负向断言,意思是"这个逗号后面不能是 空格 + 一位数字 + 字符串结尾",刚好排除了最后那个分隔member_no的逗号,只替换地址内部的逗号。
如果以后你的member_no可能变成多位数,只需要把正则改成r',(?! \d+$)'就可以适配啦。
内容的提问来源于stack exchange,提问作者Rohit Girdhar
相关产品推荐
相关产品推荐

