replaceregexp ant不插入制表

时间:2017-10-06 07:14:30

标签: regex ant

我希望在文件中匹配时替换制表符。我有这段代码:

<property name="line.separator" location="\r" />
<property name="tab.separator" location="\t" />

<target name="replace">
    <replaceregexp 
        match='@WebMethod([\s\S]*?(?=public))public\s+(\w+)\s+(\w*)[\s\S]+?(?=\))[\s\S]+?(?=MSE)(\w+)\s+(\w*)[\s\S+]+?(?=throws)throws\s+(\w*)' 
        replace='@WebMethod(operationName="\$4")${line.separator}${tab.separator}@RequestWrapper(localName = "\$3")${line.separator}\r@ResponseWrapper(localName = "\$2")${line.separator}\rpublic \$2 \$3\(${line.separator}\r\r\$4 \$5)${line.separator}\r\rthrows MSFWebServiceException' flags="g,m">
        <fileset dir="${project.dir}" />
    </replaceregexp>

但是部分  @WebMethod(operationName = “\ $ 4”)$ {line.separator} $ {tab.separator} @RequestWrapper

返回:

@WebMethod(operationName="MSEPDetalleFigPartDTO")
C:t@RequestWrapper

所以\ n没问题,但是\ t不起作用,因为它用C:t而不是制表替换\ t。

任何帮助都会受到赞赏。

最亲切的问候

1 个答案:

答案 0 :(得分:0)

这是由location代替value\t而不是&#x9;引起的:

<property name="tab.separator" location="\t" />

而不是

<property name="tab.separator" value="&#x9;" />

已设置属性line.separator(因为它是Ant built-in property),因此您的第一行只会被忽略。

location="\t"表示文件t在根目录中的文件位置,在您的情况下是驱动器C: