我的脚本目前有问题。
我只想显示Regex的某些部分。
string str = "db_name=Killa db_type=0 db_sync=false db_id=12 db_status=offline|db_name=mcHD db_type=0 db_sync=true db_id=28 db_status=online|db_name=sla db_type=0 db_sync=false db_id=193 db_status=online";
var l = string.Join("|", str);
var reg = Regex.Matches(l, @"db_name=(.+?)\s+db_id=(\d+)\s+db_status=(.+?)").Cast<Match>().Select(a => new
{
db_name = a.Groups[1].Value,
db_id = a.Groups[2].Value,
db_status = a.Groups[3].Value
}).ToList();
foreach (var x in reg)
{
Console.WriteLine(x.db_name + " " + x.db_id + " " + x.db_status);
}
但这并没有给我想要的,而是这些数据。
Killa db_type=0 db_sync=false 12 o
mcHD db_type=0 db_sync=true 28 o
sla db_type=0 db_sync=false 193 o
那就是我想要的:
Killa 12 offline
mcHD 28 online
sla 193 online
希望我能得到答复,并感谢您的帮助。
最佳答案
您可以将正则表达式更改为
db_name=(\w+)[^|]+db_id=(\d+)[^|]+db_status=(\w+)
并会得到你想要的
关于c# - 列表中的正则表达式多个字符串C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51910706/