2013-09-30 11 views
0

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

Пример:

{abc,bcd},{ def,ghi} 

Я хочу, чтобы заменить abc и def к x:abc и x:def.

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

Так что для того, чтобы заменить мне нужно определить письмо после открытия скобки, которые я могу определить, используя этот шаблон /\{.*?\,/

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

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

+0

что вы хотите еще немного неоднозначным ... –

+0

Вы хотите удалить пробел (ы) перед 'def' или нет? – Toto

+0

@ M42: пространство не является проблемой. Ответ Кента в порядке. Но я хочу изменить значение abc на «abc». Я работаю над этим. Спасибо – karthick

ответ

1

В Notepad ++, чтобы добавить двойные кавычки Arround аЬс или DEF:

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

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

или если может быть любой символ, но запятая после скобки:

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

+0

@karthick: Добро пожаловать. – Toto

1

Вам даже не нужно регулярное выражение для этого.

находка:

{ 

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

{"x": 

тест в терминале, СЭД использует BRE, так { не имеет особого смысла.

kent$ echo "{abc,bcd},{ def,ghi}"|sed 's/{/{"x":/g' 
{"x":abc,bcd},{"x": def,ghi} 
Смежные вопросы