gpt4 book ai didi

java - Ant 不会替换同一行中的多个实例

转载 作者:行者123 更新时间:2023-11-30 07:19:40 25 4
gpt4 key购买 nike

我正在使用replaceregexp 来替换文件中的特定匹配项。每当单行中有多个匹配项时,它只会替换该行的最后一个实例。

Eg:
Input:
f1.lblTest.text != null && f1.lblTest.text != ""
Reg EX:
<replaceregexp file="mod1.js" match="(.*)f1(\.|\[&quot;)lblTest(\.|&quot;\]|\[&quot;)(.*)" replace="\1f1\2lblTestNew\3\4 \\/\\/Modified" flags="g">
Expected Output:
f1.lblTestNew.text != null && f1.lblTestNew.text != "" //Modified
Actual Output:
f1.lblTest.text != null && f1.lblTestNew.text != "" //Modified
With this <replaceregexp file="mod1.js" match="f1(\.|\[&quot;)$lblTest(\.|&quot;\]|\[&quot;)" replace="f1\1lblTestNew\2 \\/\\/Modified" flags="g"> I'm getting the below output
f1.lblTestNew. //Modifiedtext != null && f1.lblTestNew. //Modifiedtext != "".
With this <replaceregexp file="mod1.js" match="f1(\.|\[&quot;)$lblTest(\.|&quot;\]|\[&quot;)" replace="f1\1lblTestNew\2" flags="g"> I'm getting the below output
f1.lblTestNew.text != null && f1.lblTestNew.text != "" This is ok but I really wanted a comment that lets the users know that this is modified and if they want they can modify again.

请提出任何解决方案。

注意:我已经尝试过带或不带“署名”的 g、m、s 标志,但它们不起作用。

最佳答案

既然你有no conditional replacement pattern support in Ant replaceregexp ,只有一种可能的解决方案,涉及 2 个步骤:

  • <replaceregexp file="mod1.js" match="f1(\.|\[&quot;)$lblTest(\.|&quot;\]|\[&quot;)" replace="f1\1lblTestNew\2" flags="g">替换所有 lblTestlblTestNew文本
  • 附加 //Modified子字符串到字符串末尾,例如 <replaceregexp file="mod1.js" match="(.*f1(\.|\[&quot;)lblTestNew(\.|&quot;\]|\[&quot;).*)" replace="\1 // Modified"> .

关于java - Ant 不会替换同一行中的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37792144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com