c# - C#字符串拆分成一两个变量
问题描述
在 C# 中,我将单个字符串值传递给函数。该值类似于此:"XA=12345678;BK=AZ31"
或者"XA=87654321"
,有时BK=
存在,有时不存在。但如果它存在,我需要它来完成我的功能。
我做了这个尝试:
string[] item_list = { "XA=12345678;BK=AZ31", "XA=87654321" };
string XA_EQ = "";
string BK_EQ = "";
foreach(string item in item_list)
{
BK_EQ = "";
string[] split = item.Split(';');
XA_EQ = split[0];
if(split.length == 2)
BK_EQ = split[1];
my_func(XA_EQ, BK_EQ);
}
有一个更好的方法吗?这可行,但似乎不方便。
解决方案
正则表达式方法
string[] item_list = { "XA=12345678;BK=AZ31", "XA=87654321" };
foreach (string item in item_list)
{
string XA_EQ = Regex.Match(item, "(?<=XA=)[0-9A-Z]*").Value;
string BK_EQ = Regex.Match(item, "(?<=BK=)[0-9A-Z]*").Value;
my_func(XA_EQ, BK_EQ);
}
推荐阅读
- ray - 如何更改运行Ray的run_experiments()时生成的实验文件路径?
- python - 移动和重命名 Python 字典
- javascript - 简单点数计数器,Javascript 未显示
- php - Laravel 与 consoletvs v6 制作动态图表
- azure-spatial-anchors - 精炼定位锚的最佳实践是什么?
- docker - docker-compose 在主机重启后启动容器。哪个?
- reactjs - ncaught Invariant Violation:对象作为 React 子对象无效
- reactjs - 选择锚链接 React 和 Gatsby 后关闭菜单
- html - 如何将 Chrome 的本机 loading="lazy" 应用于我的所有图像?
- java - String 到 int 数组的转换是否可行?