我找不到串行搜索字符串并追加替换的方法。假设我正在实施一种模板语言。简化的模板看起来像这样:
在这美好的一天,#COUNATE#中#DATE#上的文字就好了。
想象一个非常长的模板,包含许多#SOMETHING#
个标签。现在我想使用正则表达式解析这个,每次我找到#SOMETHING#
时,做一些python逻辑,用一些字符串替换它,追加它,然后继续。我发现的是,我可以将字符串分解为令牌和匹配,然后重新组合它。有没有更好的东西,没有生成所有这些字符串块?也许我想过早地进行优化,但在Java中,我们有
appendReplacement(StringBuffer,String) and appendTail(StringBuffer)
方法,我想知道在Python中是否可以做类似的事情。
请参阅http://docs.oracle.com/javase/tutorial/essential/regex/matcher.html
答案 0 :(得分:6)
您可以在re.sub
中使用函数作为“替换”。然后re.sub
将为字符串中的每个匹配调用您的函数,函数的返回值将是字符串中的替换。