首页 > 解决方案 > 在这种情况下如何在 C# 中使用 split

问题描述

我正在尝试通过以下方法拆分字符串:

string strValue = myDropdownList.SelectedValue.ToString();

//Split the dropdown selected value and assign to Name and Number
string[] strArray = strValue.Split('-');

string Name = strArray[0].Trim();
string Number = strArray.Trim();

到目前为止,上述方法运行良好。

我的下拉列表有这样的值“名称 - 号码”。

例如:“詹妮弗·奥斯汀 - 546465”。

因此,我使用将名称和编号输入到相应的字符串字段中。

但是现在我看到下拉列表有一些值,如下所示:

"Tenneson Jeff - LLC - 56454564"
"Barmer Auto-VH, LLC - 6545646"

因此,使用下拉列表中的上述列表项,如果我使用常规方法拆分,我的姓名和数字字符串字段中会出现错误值。

如何通过拆分下拉列表项将确切的名称和编号放入相应的字符串字段中。

提前致谢。

标签: c#stringsplit

解决方案


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

var regex = new System.Text.RegularExpressions.Regex(@"^\s*(?<name>.*?)\s*-\s*(?<no>\d+)\s*$", RegexOptions.Compiled);

var value = "Tenneson Jeff - LLC - 56454564";
var matches = regex.Matches(value);
var name = matches?[0]?.Groups["name"]?.Value;
var number = matches?[0]?.Groups["no"]?.Value;
Console.WriteLine(name);
Console.WriteLine(number);

正则表达式和示例在这里的解释:https ://regex101.com/r/CEe8rU/3

文档:https ://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex?view=netframework-4.7.2


推荐阅读