我想对文本执行类似的操作(这只是一个显示问题的示例):
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
答案 0 :(得分:0)
您可以使用语法\g<field name>
在替换字符串中引用命名组。所以你的代码应该写成:
new_text = re.sub(r'\[(?P<index>[0-9]+)\]', '(Found pattern the \g<index> time', text)