【问题标题】:Retrieve regex full match检索正则表达式完全匹配
【发布时间】:2019-03-28 17:01:17
【问题描述】:

我是正则表达式的新手。我已阅读文档,但仍有一些问题。

我有以下字符串:

[('15000042', 19)]

我需要将键、逗号和值作为字符串获取。 像这样:

15000042,19

我需要这个来将这些值作为逗号分隔值输入到数据库中。

我已经尝试了下一个正则表达式:

([\w,]+)

但这只会将字符串拆分为 3 个子字符串。有没有办法获得完整的比赛?

https://regex101.com/r/vtYKOG/1

我正在使用 python

【问题讨论】:

    标签: python regex python-3.x python-3.7


    【解决方案1】:

    您匹配您不想保留的内容并使用 3 个组而不是 1 个组,并使用这 3 个组来组合您的价值:

    \[\('(\d+)'(,) (\d+)\)\]
    

    Regex demo

    例如:

    import re
    
    test_str = "[('15000042', 19)]"
    result = re.sub(r"\[\('(\d+)'(,) (\d+)\)\]", r"\1\2\3", test_str)
    
    if result:
        print (result)
    

    结果

    15000042,19
    

    另一种选择是仅使用您的字符类 [^\w,]+ 并将其取反,以便与列出的内容不匹配。

    然后将这些字符替换为空字符串:

    import re
    
    test_str = "[('15000042', 19)]"
    result = re.sub(r"[^\w,]+", "", test_str)
    
    if result:
        print (result)
    

    Regex demo

    【讨论】:

    • 非常感谢,我认为第二种情况更好,因为它符合我的需要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多