2016-06-04 5 views
0

Я хотел бы проанализировать следующие данные.RegEx для анализа пользовательских тегов

{*HEADER} 
Product 
{*DESCRIPTION} 
Product Name 

{*HEADER} 
Service 
{*DESCRIPTION} 
Service Name 

и выход должен быть чем-то вроде.

List<Dictionary <string,string> > 
key = HEADER , value = Product 
Key = DESCRIPTION , value = Product Name 

а также для следующего объекта списка.

+0

ли вы имеете в виду метки «пользовательские», которые могли бы сказать некоторые фиксированные из них, представляющие интерес, или это действительно «костюм» одеть Thes вверх - я не понимаю. Это поможет настроить регулярные выражения. И какой язык кодирования управляет машиной регулярных выражений и дает желаемый результат? Тег «C#» в этом случае для меня также может указывать только на то, что вы генерируете код C#, а не как вы это делаете (я имею в виду, на каком языке) также может быть Python? – Dilettant

ответ

2

Мое представление о разборчивости ваших данных будет заключаться в использовании negated class и capturing groups.

{\*([^}]+)}\s*([^{]*[^\s{]) 
  • [{\*([^}]+)} будет захватить ключ в $1
  • \s* с последующим любым количеством пробелов
  • ([^{]*[^\s{]) фиксирует значение к $2 не заканчивается в пробельных (справа обрезается).

Here is a demo at regexstorm

+1

Regex r = new Regex (@ "({\ * (? [^}] +)} \ s *) (? [^} {] * [^ \ s} {])"); –

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