C#字符串操作

C#字符串操作,c#,regex,string,C#,Regex,String,我需要将下面的消息分串到一个数组中 "message": "patient.FirstName : First Name is required\r\npatient.LastName : Last Name is required\r\n" 预期产出: [0]->需要名字 [1] ->需要姓氏 最简单有效的解析方法是什么? 我能用正则表达式吗 注意:我可以使用以下分隔符:,\r\n 有人能举个例子吗?这里有一个使用正则表达式的解决方案: var s = "patient.FirstName

我需要将下面的消息分串到一个数组中

"message": "patient.FirstName : First Name is required\r\npatient.LastName : Last Name is required\r\n"
预期产出:

[0]->
需要名字

[1] ->
需要姓氏

最简单有效的解析方法是什么? 我能用正则表达式吗

注意:我可以使用以下分隔符:,
\r\n


有人能举个例子吗?

这里有一个使用正则表达式的解决方案:

var s = "patient.FirstName : First Name is required\r\npatient.LastName : Last Name is required\r\n";
var m = Regex.Match(s, ".*?: (?<fn>.*?)\\r\\n.*: (?<ln>.*?)\\r\\n", RegexOptions.IgnoreCase);
var a = new string[] { m.Groups["fn"].ToString(), m.Groups["ln"].ToString() };

这似乎是一种选择,混合懒惰和贪婪的量词将在C#中正确工作,但这绝对不是一种好的做法。顺便说一句,为什么不使用否定字符类?@Stribizev,我刚刚开始学习正则表达式。你的意思是这样的:
[^::::(?([^\\]+)[^::+:(?([^\\]+)
?这将以51步而不是上面的152步结束。你可以添加你的解决方案,我们都可以从中学习:)我不会不努力回答问题。它们通常会与您可能获得的所有代表积分一起删除。不值得努力。我会使用
String.Split
。谢谢@Giorgi,我的工作正常。
[0] "First Name is required"    string  
[1] "Last Name is required" string