2009-09-22 1 views
1

Как можно разбить строку, используя регулярное выражение, чтобы получить результат следующим образом:C# Regex для разбиения строки на Параметр Пункт

input = "@IDNumber==123;@Title==\"Tool Designer\";@HireDate==\"1999-03-30\";@UKCode==\"IX-IHNR\";@UKCAT==\"BR=XXX==YYYY\";@CountryCode==\" \";@AdvisorCode==655;@AdvisorXX==\"\""; 

В результате я хотел бы иметь это:


1) @IDNumber==123; 

2) @Title=="Tool Designer" 

3) @HireDate=="1999-03-30" 

4) @UKCode=="IX-IHNR" 

5) @UKCAT=="BR=XXX==YYYY" 

6) @CountryCode==" " 

7) @AdvisorCode==655 

8) @AdvisorXX=="" 

спасибо

ответ

2

Вам не нужно регулярное выражение - использовать String.Split вроде этого:

using System; 

class Example 
{ 
    static void Main() 
    { 
     String input = "@IDNumber==123;@Title==\"Tool Designer\";@HireDate==\"1999-03-30\";@UKCode==\"IX-IHNR\";@UKCAT==\"BR=XXX==YYYY\";@CountryCode==\" \";@AdvisorCode==655;@AdvisorXX==\"\""; 

     foreach (String s in input.Split(';')) 
      Console.WriteLine(s); 
    } 
} 
+0

Да, но wh когда это произойдет; внутри строки? – erikkallen

+0

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

+1

В этом случае вы можете разделить на "; @" – Kamarey

0

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

@NAME==(.*?);?(@|$) 

при совмещении заменить NAME с вашим именем парам и получить значение из вторая группа:

var value = Regex.Match(input, "@IDNumber==(.*?);?(@|$)").Groups[1].Value; 
Смежные вопросы