【发布时间】:2014-09-14 22:15:27
【问题描述】:
在 Python 中的 re 模块中有以下函数:
re.sub(pattern, repl, string, count=0, flags=0) – 返回通过替换 repl 替换 string 中最左边不重叠的 pattern 获得的字符串。如果未找到该模式,则字符串原样返回。
我发现它可以这样工作:
print re.sub('[a-z]*\d+','lion','zebra432') # prints 'lion'
我想知道,有没有一种简单的方法可以在替换字符串中使用正则表达式,以便替换字符串包含原始正则表达式/原始字符串的一部分?具体来说,我可以做这样的事情(这不起作用)吗?
print re.sub('[a-z]*\d+', 'lion\d+', 'zebra432')
我想打印'lion432'。显然,事实并非如此。相反,它打印'lion\d+'。有没有一种简单的方法可以在替换字符串中使用部分匹配的正则表达式?
顺便说一句,这不是特例。请不要假设数字总是在末尾,单词总是在开头,等等。我想知道一般所有正则表达式的解决方案。
谢谢
【问题讨论】:
标签: python regex string replace substring