2013-11-11 2 views
0

INPUT:как разбить строку в C# с использованием метода Regex.Split или любой обычный метод разделения, чтобы получить выходной сигнал, как показано ниже

string s="([A-z]{1,})-([a-z]{1,})" 

ВЫХОД: должно привести массив, содержащий:

([A-z]{1,}) 
([a-z]{1,}) 
+0

** Внимание: ** '[Az]' является ** ошибкой. ** Это * не * эквивалентно '[A-Za-z]'. ** Никогда не используйте '[A-z]' в регулярном выражении! ** –

ответ

0

Вы можете использовать регулярное выражение, которое соответствует начальной и конечной скобки и все между ними:

string[] output = 
    Regex.Matches(s, @"\([^\)]+\)+") 
    .Cast<Match>() 
    .Select(x => x.Value) 
    .ToArray(); 
+0

Большое вам спасибо! – user239151

0

Если вы хотите разделить строку всегда на «-», то вы можете напрямую использовать строку не расколоть никакой потребности Regex, потому что Regex является дорогостоящим по сравнению с строковыми операциями

string values[]=s.split('-');