我是Groovy的新手,有關於關閉的replaceFirst
的問題。如何使用Groovy的replaceFirst與閉包?
的groovy-jdk API doc給我的......
assert "hellO world" == "hello world".replaceFirst("(o)") { it[0].toUpperCase() } // first match
assert "hellO wOrld" == "hello world".replaceAll("(o)") { it[0].toUpperCase() } // all matches
assert '1-FISH, two fish' == "one fish, two fish".replaceFirst(/([a-z]{3})\s([a-z]{4})/) { [one:1, two:2][it[1]] + '-' + it[2].toUpperCase() }
assert '1-FISH, 2-FISH' == "one fish, two fish".replaceAll(/([a-z]{3})\s([a-z]{4})/) { [one:1, two:2][it[1]] + '-' + it[2].toUpperCase() }
前兩個例子是很簡單的例子,但我不明白,其餘的。
首先,[one:1, two:2]
是什麼意思? 我甚至不知道要搜索的名稱。
二,爲什麼有「它」的列表? 該文檔說replaceFirst()
用該文本上的閉包調用的結果替換捕獲的組的第一次出現。
不是「它」是指「被捕獲組的第一次出現」嗎?
我會很感激任何提示和意見!