Regex 用数字替换捕获组

Regex 用数字替换捕获组,regex,visual-studio,Regex,Visual Studio,在visualstudio的find和replace中,我试图用p或Q后跟2来替换(p | Q)1。P1和P2,Q1和Q2。然而,$12似乎在寻找捕获组12,所以它只是字面上显示为$12。我放在1和2之间的任何字符,包括反斜杠,都会显示出来。可以这样做吗?您可以安全地使用 ([PQ])1 并替换为${1}2(因为组ID周围的{}使ID明确),即使在VS2012中也是如此 如果您不确定编号的反向引用发生了什么,则始终可以使用命名捕获: (?<val>[PQ])1 (?[PQ])1

在visualstudio的find和replace中,我试图用p或Q后跟2来替换(p | Q)1。P1和P2,Q1和Q2。然而,
$12
似乎在寻找捕获组12,所以它只是字面上显示为
$12
。我放在1和2之间的任何字符,包括反斜杠,都会显示出来。可以这样做吗?

您可以安全地使用

([PQ])1
并替换为
${1}2
(因为组ID周围的
{}
使ID明确),即使在VS2012中也是如此

如果您不确定编号的反向引用发生了什么,则始终可以使用命名捕获:

(?<val>[PQ])1
(?[PQ])1
并替换为
${val}2


使用
${1}2
,应该可以在VS2013+@Lucastrezesniewski上使用,谢谢,这是答案,但是你的正则表达式最好写为
\b([PQ])1\b
(如果这些是完整的单词)或者只是
([PQ])1