我有一個像build.properties文件:在groovy中,如何替換特定行上的多個事件?
foo=bar/1.1
start=/data/home/hudson/Project-1.1/workspace/1.1
fred=wilma/workspace/1.1
只有2號線,我想所有的1.1與2.2更換,贈送:
start=/data/home/hudson/Project-2.2/workspace/2.2
我想出了一個辦法要做到這一點的常規,但我有一種感覺,我要去一下錯誤:
String result = ''
text.eachLine { line ->
if (line =~ /(?m)start=/)
result += line.replaceAll('1.1', '2.2') + '\n'
else
result += line + '\n'
}
有一個活潑,更巧妙的方式做到這一點?
完美的,Groovy溶液:d – Xorlev
感謝那...比我所做的更簡潔。我想我之後是一個解決方案,不需要我一行一行地進行迭代。我想知道是否有辦法爲此構建正則表達式。 /(^start.*)(1.1(.*))*$/行。所以我想說「尋找以」開始「開始的行,然後是」1.1和一些文本「......在我們看到行結束之前可能會重複該行,對於這樣的行,取而代之的是第1組,然後根據需要更換「2.2」和第n組。 – DaveyBob
@Davey我相信這樣的事情是可能的,但這取決於你是否需要三行代碼,你可以閱讀和理解未來......或者一行regualr表達式,當你需要改變它時,它是沒有意義的,需要完全重寫;-) –