我有一个源代码文件,其中包含以下几行:
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>
但它永远不会匹配(不幸的是,我是一个完整的正则表达式菜鸟)。任何人都知道什么可能是错的?提前谢谢。
答案 0 :(得分:1)
您需要转义括号,并且不仅允许一个空白字符。然后,\b
个锚点可用于匹配单词的开头和结尾,这在这里也很有用。我建议你试试这个:
<regexp pattern="\bisBetaVersion\(\)\s+\{\s+return\s+true\b"/>
您不需要正则表达式周围的.*
,因为您只是在寻找源代码中是否包含该子字符串。