c# - 在这种情况下如何在 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"
因此,使用下拉列表中的上述列表项,如果我使用常规方法拆分,我的姓名和数字字符串字段中会出现错误值。
如何通过拆分下拉列表项将确切的名称和编号放入相应的字符串字段中。
提前致谢。
解决方案
您可以使用这样的正则表达式:
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
推荐阅读
- .htaccess - 如何在没有其他 url 的情况下删除 index.php 并进行推荐 301 重定向
- html - 如何在 Safari 中的音频标签导致的 iOS 锁屏上隐藏播放器?
- oracle - Jhipster/Oracle 连接步骤?开发数据库?
- python - Pandas:如何组合 2 个表并为缺失值插入空白行?
- python - 跨非空列连接字符串
- kubernetes - Kubernetes nginx 的双 hsts 标头
- database-migration - 异步运行 Flyway 迁移
- unity3d - 如何减少统一的drawcall?
- xsl-fo - 页面方向取决于条件
- amazon-web-services - AWS Lambda 函数管道在部署阶段失败:操作执行失败角色...无效或无法假定