在这种情况下如何在C#中使用split

时间:2018-11-16 16:29:57

标签: c# string 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"

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

如何通过拆分下拉列表项来在各个字符串字段中获取确切的名称和编号。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用如下正则表达式:

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