好吧,通常我不会问这些问题。在
使用re.sub公司查找和替换普通字符串很简单,但是替换部分(而不是匹配部分)中的正则表达式是如何工作的呢?在
特别是,在Brian Okken's web-page中,它声称可以准确地解释这一点,它提供了代码来复制他在Pearl中使用过的功能,但在python中却很难开发。在
import fileinput
import re
for line in fileinput.input():
line = re.sub(r'\* \[(.*)\]\(#(.*)\)', r'<h2 id="\2">\1</h2>', line.rstrip())
print(line)
这个潜艇是用来匹配的
^{pr2}$换成
<h2 id="the_anchor">the label</h2>
它可以工作:但是脚本如何确切地知道标签和锚点是什么?假设\1和\2是为了匹配所需的文本,但是脚本如何知道这一点而不认为前导*指的是\1?在
替换字符串中的
\1
和\2
引用第一个和第二个“捕获”。捕获是模式正则表达式的一部分,它们被括在括号中。在例如,下面是示例regex中的捕获:
因此
\1
表示第一次捕获匹配的内容,\2
表示第二次捕获匹配的内容。在相关问题 更多 >
编程相关推荐