我需要一个正则表达式来提取JAR名称和版本。输入值采用以下格式:
C:\WORK\Modify file\test2\lib\messageclass-12.jar
C:\WORK\Modify file\test2\lib\utilities-396.jar
C:\WORK\Modify file\test2679\lib\castor-1.jar
输出应该是:
messageclass
12
utilities
396
castor
1
感谢任何帮助。 的更新
我在ant脚本中使用它来在2个属性中提取值:messageclass和12如下:
<propertyregex override="yes" property="propA" input="@{file}" regexp="here should be the regex" replace="" global="true" />
和@ {file}实际上是C:\ WORK \ Modify file \ test2 \ lib \ messageclass-12.jar
可以在http://ant-contrib.sourceforge.net/tasks/tasks/for.html
上找到示例基于您的建议的最终解决方案是:
<!-- calculate jar name -->
<propertyregex override="yes" property="jarname" input="@{file}" regexp="-(\d*)\.jar" replace="" global="true"/>
<propertyregex override="yes" property="jarname" input="${jarname}" regexp=".*\\(\S*)\\" replace="" global="true"/>
<!-- calculate jar version -->
<propertyregex override="yes" property="jarversion" input="@{file}" regexp=".*\\(\S*)-" replace="" global="true"/>
<propertyregex override="yes" property="jarversion" input="${jarversion}" regexp=".jar" replace="" global="true"/>
答案 0 :(得分:1)
答案 1 :(得分:1)
.*\\(\S*)-(\d*)\.jar
这应该可以胜任。