2016-12-01 77 views
-5

我使用String#replace()將RGB字符串轉換爲RGBa字符串。這是當前代碼:將RGB字符串轉換爲RGBa字符串的正則表達式

inputString = "rgb(255, 182, 121)"; 
outputString = inputString.replace("rgb", "rgba").replace(")", ",255)").replace(" ", ""); 

在上面的示例中,輸出將是"rgba(255,182,121,255)"。然而,這種解決方案看起來有些複雜,我認爲可以使用正則表達式更優雅地完成。

我該如何寫一個正則表達式(用Java)來完成與上面的代碼相同的事情?

+1

這不適合你嗎?如果你需要改變的字符串是已知的格式,爲什麼要改變任何東西? –

+0

@WiktorStribiżew正則表達式給出了更具體的解決方案,這就是爲什麼我想嘗試這種方式 –

+0

那麼,你有什麼嘗試呢? –

回答

2

當然,您可以:

inputString.replaceFirst("rgb\\((\\d++),\\s*(\\d++),\\s*(\\d++)\\)", "rgba($1,$2,$3,255)"); 

如果您更頻繁地使用它,更好的預編譯Pattern.compile()的正則表達式。