我有一个文本文件(f.txt),其内容应该是逐个文件列表(.c文件和其他文件),如下所示。
first.c temp.c temp.txt a.txt second.c third.c
在这个文件中,我想只为.c
个文件添加一些前缀和后缀。为此我写了下面的蚂蚁脚本。
<replaceregexp byline="true" file="f.txt"> <regexp pattern="(.+).c"/> <substitution expression="PRE \1.c POST"/> </replaceregexp>
它不适用于字符串second.c
预期输出
PRE first.c POST PRE temp.c POST temp.txt a.txt PRE second.c POST PRE third.c POST
实际输出
PRE first.c POST PRE temp.c POST temp.txt a.txt PRE s.c POSTond PRE third.c POST
它将.
中的.c
视为任何角色。但我保持它正好解析.c
。我尝试在\
之前使用.c
也像<regexp pattern="(.+)\.c">
一样。但这也没有用。
请为我提供一个获得预期输出的解决方案。
注意:我在windows xp中使用ant 1.7.0
答案 0 :(得分:4)
你想要逃避.
并且可能使用某种锚点,例如:
<regexp pattern="^(.+)\.c$"/>
^
和$
表示行的开头和结尾。没有它们,foo.coo.txt
之类的行会匹配。
答案 1 :(得分:0)
我认为你必须逃避两次,比如:
<regexp pattern="(.+)\\.c">