使用正则表达式提取包含逗号的值

时间:2014-09-25 23:15:34

标签: c# regex

我正在处理如下文字:

Graham, Mckenna -- ut    Voluptatem ipsam et at.Marvin, Garfield -- non    Facere et necessitatibus animi. McLaughlin, Mariah -- consequatur Eveniet temporibus ducimus amet eaque. Lang, Agustina -- pariatur

如您所见,有效的英文名称以逗号和空格分隔。我正在寻找一个正则表达式模式来提取这样的子串。逗号应包含在子字符串中,但不包括在尾部空格中。我还没有找到正确的模式。

我在C#中的代码如下所示:

var value = reader.ReadLine();
var regex = new Regex(@"[A-Z]\w+,(?=\s)");
var match = regex.Match(value);

2 个答案:

答案 0 :(得分:2)

如果您尝试匹配逗号之前和逗号之后的名称,则可以使用以下内容。

var rgx = new Regex(@"[A-Z][a-zA-Z]+, *[A-Z][a-zA-Z]+");

或者你可以在这种情况下简化模式:

var rgx = new Regex(@"(?i)[a-z]+, *[a-z]+");

Ideone Demo

答案 1 :(得分:0)

如果总有两个名称部分:

/[a-z]+, [a-z]+/i

使用您的输入查看demo