在Groovy或Java中实现re.search()功能

在Groovy或Java中实现re.search()功能,java,groovy,Java,Groovy,我需要一个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-colle

我需要一个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”)
这在groovy中是一项简单而基本的任务。无论如何,我希望这个答案能对你有所帮助

"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]]

到目前为止你试过什么?为什么不起作用?请用您尝试过的代码更新您的问题。更好的(?)解决方案是:
def result=“commons-collections-3.2.2.jar”。findAll(/([\w-]+)-([\w-]+)\([\w-]+)/{it.tail()}
,它将返回question@tim_yates谢谢你的建议。我已相应地更新了我的答案。