我有一个类路径,类似于:
myproject/classes;myproject/lib/somecrab.zip;myproject/lib/somelib1.jar;myproject/lib/somelib2.jar;myproject/lib/somelib3.jar;
现在我想清理这个类路径并扔掉我不想要的东西。因此在这种情况下,类路径看起来应该像
myproject/classes;myproject/lib/somelib1.jar;myproject/lib/somelib3.jar;
如何使用正则表达式执行此操作?我想用ant-Script来做,例如
<pathconvert property="new.classpath" pathsep=";">
<path refid="old.classpath" />
<chainedmapper>
<regexpmapper from="(.*).jar" to="\1.jar" />
</chainedmapper>
</pathconvert>
我如何调整正则表达式?非常感谢!
答案 0 :(得分:1)
如果你想做的就是摆脱中间的连续字符串,它应该只是:
<regexpmapper from="(.*)myproject/lib/somecrab.zip;(.*)" to="\1\2" />
答案 1 :(得分:0)
我认为您需要将其标记为(validstuffbefore)skipstuff(validstuffafter),然后使用替换字符串\ 1 \ 2
所以(可能):
^([\w/]+;)((?:[\w/]+\.jar;)*)[\w/]+\.zip;?((?:[\w/]+\.jar;)*)$
并替换为:
\1\2\3
您可能遇到多个匹配问题,但全局标记应该解决该问题。
祝你好运!