Регулярное выражение в java для замены пробелов и определенного шаблона

-8

Im немного noobie с регулярными выражениями. У меня есть такая строка:

"aaa - bbb - ccc --> ddd"

Мне нужно регулярное выражение, которое поможет мне заменить белые пробелы " " и "-->", поэтому после замены у меня будет эта строка в результате:

"aaa-bbb-cccddd"

Помогите пожалуйста?

спросил(а) 2021-01-25T14:09:46+03:00 4 месяца, 3 недели назад
1
Решение
88

Используйте чередование (символ pipe | в регулярном выражении является логическим "или"):

str = str.replaceAll(" |-->", "");

альтернативно, так как вам не нужно регулярное выражение, чтобы найти условия поиска:

str = str.replace(" ", "").replace("-->", "");

что может быть легче понять.

ответил(а) 2021-01-25T14:09:46+03:00 4 месяца, 3 недели назад
63

Если вы хотите только одно выражение, вы можете использовать его:

String newOne = old.replaceAll("[ ]|(-->)", "");

это означает: заменить все " " OR --> пустой строкой.

Но у вас много альтернатив:


"(-->)?[ ]?"
// or using + or * regular expression operators to capture more spaces in one match if you also have that case
"(-->)*[ ]*"

И если вы знаете, что ваша строка также имеет фиксированный формат для aaa, bbb и т.д., Вы можете сделать большее выражение, чтобы поймать все за один раз.

Скобки в первом выражении и квадратные скобки вокруг пространства - это опции, чтобы вы могли лучше видеть структуру выражения.

ответил(а) 2021-01-25T14:09:46+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема