2016-12-01 3 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().

Смежные вопросы