以前有人使用过ant属性和正则表达式吗?如果是这样,你知道这个字符串应该如何被纠正以使其工作吗?
<replaceregexp
file="../cms-distribution/src/main/properties/editorial/common/csdtflags.properties"
flags="s"
match="${typeSplitFirstPart}:([a-zA-Z,0-9-]+)([;])?"
replace="${typeSplitFirstPart}:1,${uid}2"
byline="true"/>
Error : java.util.regex.PatternSyntaxException: Illegal repetition near index 0
${typeSplitFirstPart}:([a-zA-Z,0-9-]+)([;])?
TypeSplitFirstPart是一个ant属性,所以它需要这样引用- ${TypeSplitFirstPart}来获取值。需要用反斜杠转义特殊字符,如$,{,},但这样就不会得到属性的值。转义$只获取typeSplitFirstPart的值,但是它会抛出这个错误-
java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 1
Template:([a-zA-Z,0-9-]+)([;])?
注意-这里${typeSplitFirstPart}
已被正确读取,其值"Template"已写入。
谢谢你,
看起来列表中的最后一个横线需要转义:
([a-zA-Z0-9-]+)