在Groovy或Java中实现re.search()功能
我需要一个Groovy/Java函数来搜索基于正则表达式的字符串中的组 例:在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
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谢谢你的建议。我已相应地更新了我的答案。