Regex 搜索并替换为带有替换变量的正则表达式

Regex 搜索并替换为带有替换变量的正则表达式,regex,Regex,所以我的公司在他们的移动网站上使用第三方,我们有一个控制台来更新一些代码,并通过它们来控制内容。其中一个功能是搜索和替换功能,它可以更新站点的代码。唯一的问题是,它使用了很多复杂的正则表达式代码,我似乎找不到一个关于复杂内容的好教程。下面是他给我的一个例子,sticks抓住段落标签并将其放在链接中 搜索 (#d6d6d4.+?>.+?<p><a.+?>.+?)</a>(.+?)</td> $1$2</a></td>

所以我的公司在他们的移动网站上使用第三方,我们有一个控制台来更新一些代码,并通过它们来控制内容。其中一个功能是搜索和替换功能,它可以更新站点的代码。唯一的问题是,它使用了很多复杂的正则表达式代码,我似乎找不到一个关于复杂内容的好教程。下面是他给我的一个例子,sticks抓住段落标签并将其放在链接中

搜索

(#d6d6d4.+?>.+?<p><a.+?>.+?)</a>(.+?)</td>
$1$2</a></td>
(#d6d4d4.+?>。+?+?)(.+?)
替换为

(#d6d6d4.+?>.+?<p><a.+?>.+?)</a>(.+?)</td>
$1$2</a></td>
$1$2
1美元和2美元代表什么?我知道这可能和其中一个有关?但我不确定是哪一个。如果有人知道,请帮助我。我在下面添加了代码,在regex变量旁边有数字

(#d6d6d4.+?**[1]**>.+?**[2]**<p><a.+?**[3]**>.+?**[4]**)</a>(.+?**[5]**)</td>
(#d6d6d4.+?***[1]***.+?***[2]***+?***[4]**)(.+?***[5]**)
<>代码> 我认为它是ReGEX的一个很好的训练工具,因为它是交互式的,你可以不断尝试不同的模式来对抗不同的文本,你可以立即看到结果。
它包含一个链接,该链接是正则表达式的良好基本指南

还有

为什么要努力写自己的,甚至有一个3500+正则表达式库的网站


$variables用于存储所进行的“匹配”:第一次匹配为-1美元$2表示第二个,以此类推。

$1和$2变量是为内部模式(parens)捕获的匹配项。$1是第一个paren组,$2是第二个。

$1和$2表示正则表达式中捕获组中的文本。捕获组是括号内的内容

 (        // start first capture group
 #d6d6d4  // match #d6d6d4
 .+?>     // any character, non-greedy, up to '>'
 .+?<p>   // any character, non-greedy, up to <p>
 <a.+?>   // an <a..> tag, consuming everything up to '>'
 .+?      // all characters from <a> to </a>
 )        // close the first capture group before the '</a>'
 </a>     // literal '</a>' 
 (        // start second capture group
 .+?      // match all, non-greedy up to '</td>'
 )        // close capture group before '</td>'
 </td>    // literal '</td>'
(//启动第一个捕获组
#D6D4//匹配#D6D4
.+?>//任何字符,非贪婪,最多'>'
.+?//任何字符,非贪婪,最多
更多文本

$1匹配:
#d6d4 foo=bar>你好,世界


这基本上意味着
标记在
更多文本之后移动(如果您愿意,也可以在
之前移动)

好的,那么$2是在抓取结束标记之间的最后一个标记,但是$1是在抓取打开标记之后的任何标记吗?好的,但我想这就是我困惑的地方,因为为什么它不是段落标记之前的标记呢?
()
帮我搞定了好吧,我知道最后2美元在哪里,但1美元在哪里得到了信息谢谢这是一个巨大的帮助,看到我不知道的1美元是一个捕获组,这是一个巨大的帮助!谢谢!