ANT:如果找到某些多行模式,则使用loadfile设置属性

时间:2011-11-28 12:02:52

标签: regex ant

我有一个源代码文件,其中包含以下几行:

   public boolean isBetaVersion() {
      return true;
   }

我尝试在ANT中读取此文件,并根据上述方法是否返回true或其他内容设置属性:

<loadfile srcfile="path/to/MyFile.java" property="isBetaBuild">
   <filterchain>
      <striplinebreaks/>
      <linecontainsregexp>
          <regexp pattern=".*\sisBetaVersion()\s\{\sreturn\strue.*"/>
      </linecontainsregexp>
   </filterchain>
</loadfile>

但它永远不会匹配(不幸的是,我是一个完整的正则表达式菜鸟)。任何人都知道什么可能是错的?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您需要转义括号,并且不仅允许一个空白字符。然后,\b个锚点可用于匹配单词的开头和结尾,这在这里也很有用。我建议你试试这个:

<regexp pattern="\bisBetaVersion\(\)\s+\{\s+return\s+true\b"/>

您不需要正则表达式周围的.*,因为您只是在寻找源代码中是否包含该子字符串。