正则表达式在Visual Studio中捕获组

时间:2015-01-09 19:00:08

标签: c++ regex

我知道这是一个非常简单的问题,但正则表达式让我感到困惑。

我创建了这个正则表达式:

DataAt\((.)\)

捕获

DataAt(5)

并将其替换为

DataAt(5).get()

我在Find and Replace框中尝试了捕获组:

DataAt($1).get()

但它只是将其改为

DataAt($1).get()

如何获得理想的结果?谢谢,抱歉这个简单的问题。

1 个答案:

答案 0 :(得分:1)

如果您想要重现DataAt部分,您还应将其捕捉到一个群组:

(DataAt)\((.)\)

然后使用此类内容替换:

$1($2).get()

导致:

DataAt(5).get()

否则,您唯一的捕获组就在( )内。

编辑:确定正则表达式替换是在Visual Studio中。对于定义捕获组的旧版本,需要使用大括号{ }和使用\1\2等的反向引用。因此,在这种情况下,它将被用作:

\DataAt\({.}\)

替换为:

DataAt(\1).get()