簡體   English   中英

可以使用命名變量在groovy的閉包中打印命名組嗎?

[英]it possible use a named variable for print a named group in closure in groovy?

類似這樣的代碼

請幫我

"56".replaceAll(/(?<name1>\d)(?<name2>\d)/){print name1}

你可以用

"56".replaceAll(/(?<name1>\d)(?<name2>\d)/) {_, name1, name2 ->
      println name1
      println name2
}

輸出:

5
6

看到這個Groovy演示

這里的要點是匹配Matcher返回的匹配對象包含3個組,即它等於捕獲組的數量,整個匹配本身為組0.因此,您應該為閉包參數提供全部3,然后您可以打印任何你喜歡的。

如果我理解你的問題是正確的,那么Get as a Map會對你有所幫助。 如下所示代碼。

println getMap('12345').name1    

Map getMap (String input)
    {
        Map namemap = [:]

        input.eachWithIndex{val, id ->  id+=1 ; namemap["name$id"]=val}

        return namemap

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM