我需要一个Groovy / Java函数来基于正则表达式搜索字符串中的组
例如:
function("([\w-]+)-([\w.-]+)\.([\w.-]+)" ,"commons-collections-3.2.2.jar" )
应返回列表["commons-collections" , "3.2.2" , "jar"]
Python可以通过
完成此操作>> import re
>> re.search("([\w-]+)-([\w.-]+)\.([\w.-]+)" ,"commons-collections-3.2.2.jar" )
>> print(result.groups())
输出为("commons-collections" , "3.2.2" , "jar")
答案 0 :(得分:0)
这是常规的简单而基本的任务。我希望这个答案能对您有所帮助。
"commons-collections-3.2.2.jar".findAll(/([\w-]+)-([\w.-]+)\.([\w.-]+)/) {
println it
}
这将产生输出:
[commons-collections-3.2.2.jar, commons-collections, 3.2.2, jar]
更新:
正如@tim_yates在评论中提到的,
println "commons-collections-3.2.2.jar".findAll(/([\w-]+)-([\w.-]+)\.([\w.-]+)/) { it.tail() }
与以上相比,它提供了更好的输出,并且也更加针对任务。
输出:
[[commons-collections, 3.2.2, jar]]