在C#中使用正则表达式划分字符串

时间:2017-03-06 06:43:24

标签: c# string string-parsing

我有一个这样的字符串:

"John William Doe 250 / 1000 Adam Smith 500 / 1000 Jane Black 250 / 1000"

如您所见,字符串由人名和共享组成。可以有任意数量的人(和股票),人们的姓名可以包含任意数量的单词。

如何将此字符串分成三个字符串,如下所示:

"John William Doe 250 / 1000"
"Adam Smith 500 / 1000"
"Jane Black 250 / 1000"

我知道我需要使用正则表达式但我不能自己做。任何帮助表示赞赏。感谢。

2 个答案:

答案 0 :(得分:2)

([a-zA-Z ]*)*[0-9]* \/ [0-9]*

首先查找带空格的名称,然后重复这些。

您继续使用数字,斜线和其他数字

注意空格。

答案 1 :(得分:2)

我知道这不是那么难的问题,并且评论中已经有了一些答案,我仍然希望为OP粘贴代码:

    static void Main(string[] args)
    {
        string all = @"John William Doe 250 / 1000 Adam Smith 500 / 1000 Jane Black 250 / 1000";
        Regex r = new Regex(@"(?:\w+\s+)+\d+\s+/\s+\d+");
        foreach (Match m in r.Matches(all))
        {
            Console.WriteLine(m.Groups[0]);
        }
        Console.ReadLine();
    }