gpt4 book ai didi

ruby - Maven神器正则表达式

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:07 26 4
gpt4 key购买 nike

我正在为我的项目创建一个 bom (http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html)。我的项目有很多依赖关系......所以我创建了一个小的 ruby​​ 脚本来为我生成 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

我正试图找到一个只返回我的正则表达式

  • 休眠公共(public)注释
  • ejb3-持久性
  • Spring 芯

前面提到的路径在变量文件名中,我有这个正则表达式来确定版本和 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]

但并非在所有情况下都有效。

任何帮助使正则表达式在所有情况下工作的帮助,以及正则表达式的简化版本都非常感谢。

最佳答案

这个正则表达式有效

.+\/(.+?)(-\d|.jar)

已测试 here , 在组(第一个组,可通过 $1 访问)中查找您要查找的字符串。

编辑:

我假设任何版本都是文件名的一部分并以减号和数字开头,因此如果正则表达式找到 -3 -0 文件字符串将终止等等。

关于ruby - Maven神器正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12706814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com