私はreplaceregexpを使ってファイル内の特定の一致を置き換えています。 1つの行に複数の一致があるたびに、その行の最後のインスタンスだけが置き換えられます。Antは同じ行の複数のインスタンスを置き換えません
Eg:
Input:
f1.lblTest.text != null && f1.lblTest.text != ""
Reg EX:
<replaceregexp file="mod1.js" match="(.*)f1(\.|\[")lblTest(\.|"\]|\[")(.*)" 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(\.|\[")$lblTest(\.|"\]|\[")" 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(\.|\[")$lblTest(\.|"\]|\[")" 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.
解決策をご提案ください。
注:私はすでに 'byline'の有無にかかわらずg、m、sフラグを試してみましたが、うまくいきませんでした。
両側に '(。*) 'があるために起こります。それらを削除し、置換パターンで後方参照を削除します。 $ lblTest(\。| " \] | \ [") "replace =" f1 \ 1lblTestNew \ 2 \\/\ "と入力してください。"' –
こんにちはWiktorはあなたの提案をお寄せいただき、ありがとうございます。この出力は 'f1.lblTestNew。 // Modifiedtext!= null && f1.lblTestNew。 // Modifiedtext!= ""。 '。私は '(。*)'が問題を引き起こしている理由を理解しました。私は、行の最後に// Modifiedを1回だけ必要としました。 '\\/\\/Modified'を削除すると正しく置き換えられ、出力は' f1.lblTeststudio1.text!= null && f1.lblTeststudio1.text!= "" 'ですが、' //変更されているので、ユーザーにとって便利なAntスクリプトによって修正されていることがわかっているので、必要に応じてユーザーが手動で再度修正することができます。助言がありますか? – Priyadarshini
私は今、あなたが複数回置き換えることを理解しています。いくつかのテキストの*と*最後にテキストを追加します。見た目はややこしく見えますか?あなたの提案を 'f1 \ 1lblTestNew \ 2'で置換文字列として使用して、'/* Modified'コメントに別のルールを追加することはできませんか? '(。* f1(\。| \ [")lblTestNew | " \] | \ [")。*) '\ '// Modified'に置き換えられますか? –