1

通常,我会遇到想要找到并替换字符串的两侧,并保持中间完好无损的情况。通常,第一部分很容易识别,但第二部分太常见了。这是一个例子:

要将代码字符串更改ActiveDocument.Sections["SectionName"]SectionName,很容易找到第一部分,但后者"]太常见了,没有与ActiveDocument.Sections[". 显然,如果SectionName是静态字符串,这没关系,我可以找到整个代码字符串(包括在内)来替换。

有没有办法匹配两边,跳过中间,或者正则表达式只能找到连续的部分?.*?或者也许有一种方法可以通过临时存储在表达式中找到的内容来做我想做的事情?

我正在使用 UltraEdit 进行查找/替换操作。我还可以使用 Javascript 将代码作为字符串执行,即:codestring.replace()

4

2 回答 2

2

这将取决于您使用的工具,但在 Javascript 中,您可以使用$1返回第一个捕获组。

因此,您可以将模式ActiveDocument.Sections\["(.*?)"\]用于“查找”和$1“替换”。

我在regular-expressions.info使用 javascript 正则表达式工具对此进行了测试

于 2013-06-04T20:56:21.367 回答
0

.*\["(.*?)"\]在 Python 中为我工作

import re
re.match(r'.*\["(.*?)"\]', 'ActiveDocument.Sections["SectionName"]').group(1)
'SectionName'

根据在线测试,它似乎也可以与 Javascript 一起使用。

于 2013-06-04T20:54:57.767 回答