我希望在文件中匹配时替换制表符。我有这段代码:
<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。
任何帮助都会受到赞赏。
最亲切的问候
答案 0 :(得分:0)
这是由location
代替value
和\t
而不是	
引起的:
<property name="tab.separator" location="\t" />
而不是
<property name="tab.separator" value="	" />
已设置属性line.separator
(因为它是Ant built-in property),因此您的第一行只会被忽略。
location="\t"
表示文件t
在根目录中的文件位置,在您的情况下是驱动器C: