我有以下字符串:
$类别:BY 颜色:香料$类别:分类:植物$分类:类别:植物:叶子$来源:adl-bdc2012:vol1:出版 - 非150:KOETSIER,ALBERT $类别:分类:季节性/假日
我想解析这个字符串,并希望结果为:
Spice,Botanical,Leaves,KOETSIER,ALBERT,Seasonal / Holiday
我在想Substring
,但似乎会变得太复杂。什么是更好的方法?
答案 0 :(得分:3)
我会使用split(string),将其拆分为'$',然后按':'将其拆分
yourLongString.Split('$').Select(v => v.Split(':')).ToArray();
它将为您提供一个字符串数组数组,我认为它可以帮助您根据需要格式化字符串,您可以在下图中看到结果:
答案 1 :(得分:0)
这也是另一种解决方法:
您将:
字符拆分,然后通过传递任何空格,然后使用var xs = str.Split('$')
.Where(p => p != "")
.Select(s => s.Substring(s.LastIndexOf(":", StringComparison.Ordinal) + 1))
.ToList();
冒号获取子字符串而不是索引结束,并将其作为字符串或数组列表返回。
xs.ForEach(Console.WriteLine);
打印结果:
Spice
Botanical
Leaves
KOETSIER, ALBERT
Seasonal / Holiday
输出
dmsgsubject, dmsgsubjectencoding = email.header.decode_header(msg['Subject'])[0]
msgsubject = dmsgsubject.decode(*([dmsgsubjectencoding] if dmsgsubjectencoding else [])) if isinstance(dmsgsubject, bytes) else dmsgsubject
然后你可以在一行中使用逗号进行decoreation。