Regex, как заменить часть строки другой

Мне нужно заменить часть текста другой строкой.

Пример:

{abc,bcd},{ def,ghi}

Я хочу заменить abc а также def в x:abc а также x:def,

Я хочу заменить первое значение во вводных скобках. Но я не знаю, какую ценность я получу.

Поэтому для замены мне нужно идентифицировать букву после открывающих скобок, которую я могу определить, используя этот шаблон /\{.*?\,/

Но сейчас я не знаю, как заменить соответствующую строку текстом. Как мне это сделать?

Ответ не обязательно должен иметь отношение к notepad++ . Вы можете использовать любой язык, чтобы объяснить, как это сделать.

2 ответа

Решение

В Notepad++ для добавления двойной кавычки arround abc или def:

Искать что: \{\s*(\w+)
Заменить: {x:"$1"

это изменится {abc,bcd},{ def,ghi} в {x:"abc",bcd},{x:"def",ghi}

Или, если это может быть любой символ, кроме запятой после фигурной скобки:

Искать что: \{([^,]+)
Заменить: {x:"$1"

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

находить:

{

замените его на:

{"x":

тест в терминале, sed использует BRE, так { не имеет особого значения.

kent$ echo "{abc,bcd},{ def,ghi}"|sed 's/{/{"x":/g'
{"x":abc,bcd},{"x": def,ghi}
Другие вопросы по тегам