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}