0

この入力行を編集して、Product_A キーにさらに値を追加します。

 input="CSDT_FLAG_PRODUCT_FF_FWUIDS=Product_A:45223423;Product_PD:4;Product_CD:345345,22454;Product_F:3423"

以下の ant replaceregex 行があります。

replaceregexp file="../cms-distribution/src/main/properties/editorial/common/csdtflags.properties" flags="s" match="Product_A:([^\.]*)([;])?" replace="Product_A:,${uid}\1" byline="true"/>

これは、生成された結果を除いて仕事をします:

CSDT_FLAG_PRODUCT_FF_FWUIDS=Product_A:+,42e8140a-79ce-4bda-b64a-539bc4a17dbb+,80ab7183-715d-471b-8ae0-b527d2597b06+,......

どこからともなく + 記号が挿入され、次に Product_A に存在していた元の値が置き換えられます。コンマで元の値に追加したい。どうすればいいですか?どんな助けでも感謝します。

ありがとう

4

1 に答える 1

0

ant とそれが正規表現をどのように処理するかについてはわかりませんが、問題は正規表現に依存していると思います。あなたは文字列を持っています

"CSDT_FLAG_PRODUCT_FF_FWUIDS=Product_A:45223423;Product_PD:4;Product_CD:345345,22454;Product_F:3423"

そして正規表現

/Product_A:([^\.]*)([;])?/

;キャラクターが最後に出現するまで一致するため、 Product_A;下の値だけが一致するわけではありません。ここで確認してください。

ただし、Product_Aキーの値が常に 8 桁の文字列になる場合は、次の正規表現を使用できます。

/Product_A:(.{8});/

内の一致グループ()がコードをキャプチャします。これは私ができる限りのことです。おそらくこの回答Antプロパティの文字を置き換えることが役立ちます。

于 2013-01-16T14:31:24.403 に答える