检索正则表达式完全匹配

问题描述 投票:0回答:1

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

我有以下字符串:

[('15000042', 19)]

我需要将密钥,逗号和值作为字符串。像这样:

15000042,19

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

我试过下一个正则表达式:

([\w,]+)

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

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

我正在使用python

python regex python-3.x python-3.7
1个回答
2
投票

您匹配您不想保留的内容并使用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

© www.soinside.com 2019 - 2024. All rights reserved.