我正在尝试在Ant构建文件中替换标记,但前提是标记位于具有特定内容的行中。
文件中的样例代码片段:
<script type="text/javascript" src="scripts/someFolder/someFile1.js"></script>
<script type="text/javascript" src="scripts/otherFolder/fileName.js"></script>
<script type="text/javascript" src="scripts/aFolder/file3.js"></script>
<script type="text/javascript" src="scripts/someFolder/aFile.js"></script>
<script type="text/javascript" src="scripts/someFolder/subfolder/anotherFile.js"></script>
<body>
<p>Stuff</p>在本例中,我想对来自“某个文件夹”的任何js文件附加一个?时间戳。我尝试过这些方法(实际的正则表达式是不同的):
<copy file="xyz.jsp" tofile="${staging}/jsp/Links-test.jsp">
<filterchain>
<linecontainsregexp>
<regexp pattern="someFolder" />
</linecontainsregexp>
<replacestring from=".js" to=".js?blahblah" />
</filterchain>
</copy>但这只会导致文件中只包含修改过的行。需要设置什么标志才能保留所有文件内容?我需要整个文件,只需要一些有条件的替换。
发布于 2011-05-07 02:47:11
您可以将多个筛选器链放在一起。筛选器链会筛选出包含正则表达式的行。您需要的是第二个过滤器链来将其添加回来。
完全未经测试:
<copy file="xyz.jsp" tofile="${staging}/jsp/Links-test.jsp">
<filterchain>
<linecontainsregexp>
<regexp pattern="someFolder" />
</linecontainsregexp>
<replacestring from=".js" to=".js?blahblah" />
</filterchain>
<filterchain>
<linecontainsregexp negate="true">
<regexp pattern="someFolder" />
</linecontainsregexp>
</filterchain>
</copy>https://stackoverflow.com/questions/5913648
复制相似问题