2009-03-30 4 views
5

Я хочу, чтобы разделить строку в C#, который выглядит какразбить строку на основе регулярных выражений

A: B: "C: D"

так, что результирующий массив будет иметь

Array [0 ] = "а"

Массив [1] = "б"

Массив [2] = "C: d"

, что регулярное выражение я использую для достижения требуемого результата.

Большое спасибо

ответ

4

Если разделитель двоеточие разделенных пробелами, вы можете использовать \ S, чтобы соответствовать пробельные:

string example = "a : b : \"c:d\""; 
string[] splits = Regex.Split(example, @"\s:\s"); 
+0

Упс, я думаю, этот раскол будет хранить цитаты вокруг «c: d» ... –

+0

Спасибо, Энди, это очень помогает. –

1

Это похоже на работу в RegexBuddy для меня

(\w+)\s:\s(\w+)\s:\s"(\w+:\w+)"

вход

а: Ь: "C: d"

соответствует группы

  1. б
  2. с: d

Как всегда быть осторожным и понять, что на самом деле делает регулярное выражение. Не просто копировать вслепую. Это соответствует символам слов \w, пробелам \s и т. Д. Рассмотрите, какие данные у вас есть на самом деле!

+0

Отлично, теперь он имеет * два * проблемы, р –

+0

я получил 99 проблем, но регулярное выражение Ain' т. –

+0

Я думаю, что должно быть более широкое решение с | ..smth вроде: (\ w +) \ s: |: \ s "(\ w +: \ w +)" ..или вид этого – 0x49D1

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