正则表达式和Ant



以前有人使用过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-]+)

相关内容

  • 没有找到相关文章

最新更新