Python:正则表达式替换

2024-04-25 12:26:08 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,通常我不会问这些问题。在

使用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?在


Tags: the字符串importre脚本webidline
1条回答
网友
1楼 · 发布于 2024-04-25 12:26:08

替换字符串中的\1\2引用第一个和第二个“捕获”。捕获是模式正则表达式的一部分,它们被括在括号中。在

例如,下面是示例regex中的捕获:

r'\* \[(.*)\]\(#(.*)\)'
       ^^^^     ^^^^

因此\1表示第一次捕获匹配的内容,\2表示第二次捕获匹配的内容。在

相关问题 更多 >