我想编辑这一行输入,并为Product_A Key添加更多值。
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中存在的原始值。我想用逗号附加到原始值。我该怎么做呢? 任何帮助赞赏。
由于
答案 0 :(得分:0)
我不知道关于ant的事情以及它如何处理正则表达式,但我认为问题依赖于正则表达式。你有一个字符串
"CSDT_FLAG_PRODUCT_FF_FWUIDS=Product_A:45223423;Product_PD:4;Product_CD:345345,22454;Product_F:3423"
和正则表达式
/Product_A:([^\.]*)([;])?/
;
匹配到字符;
的最后一次出现,因此不匹配 Product_A 下的值,请自行查看here。
但是,如果您现在 Product_A 键的值始终为8位数字符串,则可以使用此正则表达式:
/Product_A:(.{8});/
()
内的匹配组会捕获代码,这是我可以帮助你的,也许这个答案Replacing characters in Ant property有帮助。