2013-01-16 47 views
2

有沒有人曾經使用過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是一隻螞蟻屬性,因此它需要參照這種方式 - $ {} typeSplitFirstPart得到的值。需要使用反斜槓來轉義特殊字符,例如$,{,},但它不會獲取該屬性的值。逃避$只檢索typeSplitFirstPart的價值但它拋出這個錯誤 -

java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 1 

\Template:([a-zA-Z,0-9-]+)([;])? 

注 - 在這裏${typeSplitFirstPart}已經被正確讀取,並將其值「模板」被寫入。

謝謝你,需要

回答

1

它看起來像在列表中的最後衝刺進行轉義:

([a-zA-Z0-9\-]+) 
+0

- java.util.regex.PatternSyntaxException:近索引0 $非法重複{} typeSplitFirstPart :([A-ZA-Z,0-9 \ - ] +)([])? – seph

+0

將不起作用....... – seph

+0

逗號也需要逃脫。 – elias