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

ras*_*hok 4 regex string ant scripting

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

    第一个.c
    温度
    临时文件
    一个.txt
    第二个.c
    第三个.c

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

    <replaceregexp byline="true" file="f.txt">
        <regexp pattern="(.+).c"/>
        <substitution expression="PRE \1.c POST"/>
    </替换正则表达式>

它不适用于字符串 second.c

预期输出是

    PRE first.c POST
    PRE temp.c POST
    临时文件
    一个.txt
    PRE second.c POST
    前第三个.c POST

实际输出是

    PRE first.c POST
    PRE temp.c POST
    临时文件
    一个.txt
    PRE sc POSTond
    前第三个.c POST

其治疗..c任何字符。但我保留它来准确解析.c。我\之前尝试过使用.c也喜欢<regexp pattern="(.+)\.c">。但这也无济于事。

请为我提供一个解决方案来获得预期的输出。

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

Qta*_*tax 5

您想逃避.并可能使用某种锚点,例如:

<regexp pattern="^(.+)\.c$"/>
Run Code Online (Sandbox Code Playgroud)

^$表示行的开头和结尾。没有它们,线条就像foo.coo.txt会匹配。

  • +1。是的,锚点和反斜杠应该一直存在,但在我看来它仍然应该在`second.c`上正常工作。我错过了什么? (2认同)