我正在为我的项目创建一个 bom (http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html)。我的项目有很多依赖项......所以我创建了一个小红宝石脚本,它会为我生成 xml。但是当涉及到决定 artifactId 的正则表达式时,我做得不够好。假设我有以下 3 条路径:
- /Users/buddy/Downloads/jboss-esb/client/hibernate-commons-annotations.jar
- /Users/buddy/Downloads/jboss-esb/client/ejb3-persistence.jar
- /Users/buddy/Downloads/jboss-esb/server/default/deploy/spring.esb/spring-core-3.0.6.RELEASE.jar
我正在尝试找到一个正则表达式,它只会返回我
- hibernate-commons-注解
- ejb3-持久性
- 弹簧芯
前面提到的路径在变量文件名中,我有这个正则表达式来确定版本和 artifactId(显然我有一些默认版本,以防文件名中没有版本)
@version = version
if temp_version = filename[/-([\d+{1,3}\.A-Z]+).jar/,1]
@version = temp_version
end
@artifactId = filename[/.*\/([\w\d]+\-?[^\d^\-]*)\-?[\d+\.A-Z]*.jar/,1]
但它不会在所有情况下都有效。
任何帮助使正则表达式在所有情况下都能正常工作,并且非常感谢简化版本的正则表达式。