замена регулярного выражения удаляет первый и последний символ при использовании $ 1 - PullRequest
2 голосов
/ 27 июня 2019

У меня есть такая строка:

&breakUp=Mumbai;city,Puma;brand&

где Мумбаи; город и Пума; бренд - это фильтры (скажем,), разделенные запятой (,). Я должен добавить больше фильтров, таких как Дели; Государство.

Я использую следующее регулярное выражение, чтобы найти приведенную выше строку:

&breakUp=.([\w;,]*).&

и следующее регулярное выражение для его замены:

&breakUp=$1,Delhi;State&

Правильно находит строку, но при замене удаляет первый и последний символ и дает следующий результат:

&breakUp=umbai;city,Puma;bran,Delhi;State&

Как решить эту проблему? Кроме того, если у меня нет фильтров, я не хочу эту первую запятую. Как

&breakUp=&

должно стать

&breakUp=Delhi;State&

Как это сделать?

Ответы [ 2 ]

2 голосов
/ 27 июня 2019

Похоже, что ваша проблема - начальный и конечный период, они соответствуют любому символу.

Попробуйте использовать это регулярное выражение:

&breakUp=([\w;,]*)&
1 голос
/ 27 июня 2019

Я предполагаю, что ваше выражение просто отлично, там есть два дополнительных ., которые мы удалили бы:

&breakUp=([\w;,]*)&

В этой демоверсии объяснено выражение, если вам может быть интересно.

Чтобы обойти &breakUp=&, мы можем применить это выражение:

&breakUp=([^&]+)&

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...