基于正则表达式拆分字符串

5

我想在C#中拆分一个字符串,它看起来像这样:

a : b : "c:d"

因此,结果数组将为

Array[0] = "a"

Array[1] = "b"

Array[2] = "c:d"

我应该使用什么正则表达式才能实现所需的结果。

非常感谢

2个回答

4
如果分隔符冒号由空格分隔,则可以使用\s匹配空格:
string example = "a : b : \"c:d\"";
string[] splits = Regex.Split(example, @"\s:\s");

谢谢安迪,那非常有帮助。 - Anand Shah

1

这个正则表达式在我的RegexBuddy中似乎可以工作:

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

输入:

a : b : "c:d"

匹配组:

  1. a
  2. b
  3. c:d

一如既往地要小心并了解正则表达式实际上是做什么的。不要盲目复制。这个表达式匹配单词字符\w,空格\s等。请考虑您的输入数据实际上会有什么!


太好了,现在他有两个问题;p - Neil Barnwell
我有99个问题,但正则表达式不是其中之一。 - Jeff Atwood
我认为应该有更广泛的解决方案,类似于:(\w+)\s:|:\s"(\w+:\w+)" 或类似的东西。 - 0x49D1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接