找到子串并替换它们但获取它们的信息[python]

时间:2017-02-05 20:47:57

标签: python regex string

我想对文本执行类似的操作(这只是一个显示问题的示例):

new_text = re.sub(r'\[(?P<index>[0-9]+)\]',
            '(Found pattern the ' + index + ' time', text)

文字是我的原文。我想找到这样的子字符串:[3][454]。但这不是困难的部分。困难的部分是获得那里的数字。我想使用这个数字来使用一个名为add_link(number)的方法,该方法需要一个数字(而不是字符串I&#39; m with&#34; Found pattern ...&#34; - &#39;只是一个例子)。 (在数据库中,它存储了与找到链接的ID匹配的链接。)

Python告诉我它不知道局部变量index。我怎么知道呢?

编辑:我被告知我没有问清楚。 (我已经有了答案,但也许有人将来会阅读这篇文章。)问题是如何将这种模式称为[0-9]+ get作为局部变量。我猜这将是这样的:(?P<index>[0-9]+),它是。

先进的Thanx,Asqiir

1 个答案:

答案 0 :(得分:0)

您可以使用语法\g<field name>在替换字符串中引用命名组。所以你的代码应该写成:

new_text = re.sub(r'\[(?P<index>[0-9]+)\]', '(Found pattern the \g<index> time', text)