关于正则表达式匹配贪婪模式的坑

Posted by Remilia Scarlet on March 30, 2020

要求:LOCAL(p1).z:=LOCAL(p2).z+100替换成LOCAL(p1.z):=LOCAL(p2.z)+100

方案:匹配模式”LOCAL((.+))([\w._]+)”,替换模式”LOCAL($1$2)”

问题:替换后变成 LOCAL(p1).z:=LOCAL(p2.z)+100

原因:.+会使用贪婪模式匹配,所以.+实际的匹配结果是 p1).z:=LOCAL(p2

修改方案:匹配模式改为 “LOCAL((.+?))([\w._]+)”


| 访问量: