2016-10-12 55 views
0

是否有方法使用原始匹配值替換文本中的某個字符串?
舉例來說,我想通過小數,全部更換爲整數,如下面的例子:Scala:如何使用原始匹配值替換字符串

"hello 45 hello 4 bye" --> "hello 45.0 hello 4.0 bye" 

我可以findAllIn匹配所有的數字和後取代他們,但我想知道是否有更好的解決方案。

回答

2

使用RegularExpressions,您可以使用$1拿到第一個捕獲組的結果(括號中):

val regex = "(\\d+)".r 
val text = "hello 45 hello 4 bye" 
val result = regex.replaceAllIn(text, "$1.0") 
// result: String = hello 45.0 hello 4.0 bye 
+1

爲什麼在用'$ 0'引用整個匹配時使用'$ 1'? –

+0

@WiktorStribiżewyup,這更簡單:/ –

+0

你知道我怎麼在'$ 0'上做一些操作?例如:'replaceAllIn(text,「$ 0」.take(「$ 0」.length - 1)+「.0」)'因爲「非法組參考」而不起作用,是否可以這樣做? – Simon

相關問題