当前位置 博文首页 > python正则表达式去掉数字中的逗号(python正则匹配逗号)

    python正则表达式去掉数字中的逗号(python正则匹配逗号)

    作者:admin 时间:2021-02-20 06:38

    分析

    数字中经常是3个数字一组,之后跟一个逗号,因此规律为:***,***,***

    正则式

    复制代码 代码如下:

    [a-z]+,[a-z]?

    复制代码 代码如下:

    import re

    sen = "abc,123,456,789,mnp"
    p = re.compile("\d+,\d+?")

    for com in p.finditer(sen):
        mm = com.group()
        print "hi:", mm
        print "sen_before:", sen
        sen = sen.replace(mm, mm.replace(",", ""))
        print "sen_back:", sen, '\n'

    技巧

    使用函数finditer(string[, pos[, endpos]]) | re.finditer(pattern, string[, flags]):

    搜索string,返回一个顺序访问每一个匹配结果(Match对象)的迭代器。

    复制代码 代码如下:

    sen = "abc,123,456,789,mnp"
    while 1:
        mm = re.search("\d,\d", sen)
        if mm:
            mm = mm.group()
            sen = sen.replace(mm, mm.replace(",", ""))
            print sen
        else:
            break

    这样的程序针对具体问题,即数字3位一组,如果数字混杂与字母间,干掉数字间的逗号,即把“abc,123,4,789,mnp”转化为“abc,1234789,mnp”

    更具体的是找正则式“数字,数字”找到后用去掉逗号的替换

    复制代码 代码如下:

    sen = "abc,123,4,789,mnp"
    while 1:
        mm = re.search("\d,\d", sen)
        if mm:
            mm = mm.group()
            sen = sen.replace(mm, mm.replace(",", ""))
            print sen
        else:
            break
    print sen

    js