在匹配之前替换回溯捕获组中的字符

时间:2017-03-21 09:40:01

标签: regex pcre backtracking

我在使用回溯匹配特定字符串时遇到了问题。

以下是要匹配的示例字符串。

 - Warning</b>:  include(db.inc.php) [<a
   href='function.include'>function.include</a>]:
 - Warning</b>:  mysql_real_escape_string() [<a   
   href='function.mysql-real-escape-string'>function.mysql-real-escape-string

正则表达式:

 warning<\/b>\:\s++(.*)\(.*?\)\s\[<a\shref='(function.\1)'>\2/m

上面的正则表达式将匹配第一个示例,但第二个示例将失败。由于第一个具有多个单词“mysql_real_escape”的捕获组之间会有“_”。

在匹配之前,有没有办法可以用“ - ”替换\ 1中的“_”。

正则表达式引擎:PCRE

0 个答案:

没有答案