2013-03-19 5 views
0

У меня есть файл с сотнями строк, похожих на приведенные ниже. Мне не хватало навыков регулярного выражения, чтобы выполнить работу. Я пытаюсь это заменить в Notepad ++ с помощью поиска и замены с помощью регулярного выражения, также попробовал (и не удалось) в vim.Поиск и замена Regex с помощью группировки

Это мое регулярное выражение

public string (^[A-Z]*[\S]) { get; set }

Так что я хочу, чтобы сделать первую линию выглядеть следующим образом

Foretag public string Foretag { get; set; }

и все строки нижеэто соответствие мой термин поиска, который Type = "строка"

Foretag Type="string" 
DagboksDatum Type="DateTime" 
Byggdag Type="int" 
PaborjadeArbeten Type="string" 
FardigaArbeten Type="string" 

ответ

5

In Vim:

:%s/\(\w*\).*string.*/\1 public string \1 { get; set } 
+2

+1, было бы лучше добавить 'Type =' перед 'string'. конечно, текущий пример не имеет проблем с этой командной строкой. Кроме того, я не понимаю, отметили ли вы вопрос с vim, почему еще нужен тег 'notepad ++'?^_^просто шутка ... хороший ответ! – Kent

+1

Спасибо. Я подумал о том, чтобы добавить более общее и твердое решение (с большим количеством групп захвата и разных кванторов), но я решил не согласиться с этим и сохранил его для образца в вопросе. – romainl

3

Вы бы это сделать, как это в NPP:

найти то, что:

^(\w+) Type="(\w+)" 

заменить:

\1 public \2 \1 { get; set; } 
+0

Спасибо, что работает! – Kolla

Смежные вопросы