正则表达式拆分字符串

时间:2012-09-25 16:23:37

标签: c# regex


我试图解析下面的字符串:

  

* A。 BOSCOLO1,4,J。A. STARR2,N。LUNARDI4,C.ORI4,J.P.BENNETT,Jr3,V。JEVTOVIC-TODOROVIC2,3,4,

预期的输出低于:

  

* A。 BOSCOLO1,4
JA STARR2
N. LUNARDI4
C. C. ORI4
JP BENNETT,Jr3
V.V. JEVTOVIC-TODOROVIC2,3,4

我不能在分隔符(,)上拆分它们,因为它不一致。以上是名称后跟一个或多个数字。数字&之后的单词逗号直到下一个单词,不允许任何没有任何数字的名字。
我不知道如何编写REGEX。任何帮助将受到高度赞赏。
感谢

1 个答案:

答案 0 :(得分:3)

您可以使用这样的正则表达式:;

[*A-Z]\D+\d+(,\d+)*

示例:

string data = "*A. BOSCOLO1,4, J. A. STARR2, N. LUNARDI4, C. ORI4, J. P. BENNETT, Jr3, V. JEVTOVIC-TODOROVIC2,3,4,";

MatchCollection matches = Regex.Matches(data, @"[*A-Z]\D+\d+(,\d+)*");

foreach (Match x in matches) {
  Console.WriteLine(x);
}

输出:

*A. BOSCOLO1,4
J. A. STARR2
N. LUNARDI4
C. ORI4
J. P. BENNETT, Jr3
V. JEVTOVIC-TODOROVIC2,3,4