正则表达式(regexp元素)模式中的转义字符是什么?



我有一个文本文件(f.t txt),它的内容应该是一个接一个的文件列表(.c文件,和其他文件),如下所示。

<>之前first.ctemp.ctemp.txta.txtsecond.cthird.c之前

在这个文件中,我想添加一些前缀和后缀,只有.c文件。为此,我编写了如下ant脚本:

<>之前& lt; regexp模式= " (+). c/比;<替换表达式 />& lt;/replaceregexp>之前

对于字符串second.c

不起作用

期望输出

<>之前PRE first.c POSTPRE temp.c POSTtemp.txta.txtPRE - second - POSTPRE - third POST之前

实际输出

<>之前PRE first.c POSTPRE temp.c POSTtemp.txta.txtPRE .c postPRE - third POST之前

.c中的.视为任意字符。但我保持它解析准确的.c。我尝试在.c之前使用,也喜欢<regexp pattern="(.+).c">。但这也没有用。

请给我一个解决方案,以获得预期的输出。

注意:我在windows xp中使用ant 1.7.0

您想要转义.并可能使用某种锚,例如:

<regexp pattern="^(.+).c$"/>

^$表示行首和行尾。如果没有它们,像foo.coo.txt这样的行也可以匹配。

我认为你必须转义两次,如:

<regexp pattern="(.+)\.c">

最新更新