python / jinja中的正则表达式模式替换

时间:2012-09-18 17:42:30

标签: python regex

正则表达式的新功能,我很难在python中为自定义函数re_replace组合一个正则表达式参数:

{{fieldname|re_replace(pattern, replacement)}}

该模式使用正则表达式,我想返回以下id=0123456,其中fieldname遵循以下格式:

https://a.website.com/page.php?id=0123456&variable1=abcde123&variable2=abc123de

我已设法替换id=0123456,但无法进行反向操作。提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用re.search而非自己的自定义函数来执行此操作吗?

语法为:

re.search(r'id\=\d+', fieldname).group(0)      # return 'id=0123456'
re.search(r'(?<=id\=)\d+', fieldname).group(0) # return '0123456'

要执行逆操作,您可以使用re.sub

答案 1 :(得分:0)

查看命名捕获。这样你就可以做到这样的事情:

(?P<name>...)

使用 match.groupdict()并返回包含匹配项的命名字典。 在此处阅读更多相关信息:http://docs.python.org/library/re.html