【发布时间】:2013-01-17 00:30:06
【问题描述】:
以前有人使用过 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} 已被正确读取,其值“模板”已写入。
谢谢,
【问题讨论】: