2

有没有人使用过蚂蚁属性和正则表达式?如果是这样,您是否知道应如何更正此字符串以使其正常工作?

<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}已正确读取,并且已写入其值“模板”。

谢谢你,

4

1 回答 1

1

看起来列表中的最后一个破折号需要转义:

([a-zA-Z0-9\-]+)
于 2013-01-16T16:21:53.647 回答