如何将一个段落逐行解析成一个数组?
How to parse a paragraph into an array line by line?
如果我有这样一段话:
MODULE Local (Parent := "Local",
ParentModPortId := 1,
CatalogNumber := "1756-L71S",
Vendor := 1,
ProductType := 14,
ProductCode := 158,
Major := 27,
Minor := 11,
PortLabel := "RxBACKPLANE",
ChassisSize := 13,
Slot := 11,
Mode := 2#0000_0000_0000_0001,
CompatibleModule := 0,
KeyMask := 2#0000_0000_0001_1111,
SafetyNetwork := 16#0000_3acc_033e_6fa0)
END_MODULE
它目前在我的程序中仅保存为一个简单的字符串。现在,我想将每一行保存为数组中的一个条目,我该怎么做呢?
使用String.Split
函数
string[] paragraph =yourString.Split(",");
尝试使用双引号作为转义字符
String Para = @"MODULE Local (Parent := ""Local"",
ParentModPortId:= 1,
CatalogNumber:= ""1756-L71S"",
Vendor:= 1,
ProductType:= 14,
ProductCode:= 158,
Major:= 27,
Minor:= 11,
PortLabel:= ""RxBACKPLANE"",
ChassisSize:= 13,
Slot:= 11,
Mode:= 2#0000_0000_0000_0001,
CompatibleModule:= 0,
KeyMask:= 2#0000_0000_0001_1111,
SafetyNetwork:= 16#0000_3acc_033e_6fa0)
END_MODULE";
我观察到格式与 JSON 非常相似,尽管使用了其他分隔符。
因此,解决它的一种方法是将其转换为 JSON:
- 将所有“:=”替换为“=”
- 将 ( 和 ) 替换为 { 和 }
- 将 , 替换为 ;
- 删除模块标签
然后您可以使用 JSON 库解析它,例如 NewtonSoft,它位于 NuGet 上。
如果您事先知道预期的字符串对,您可以将其转换为定义的 class。否则,将其转换为动态(如果您的 .NET 版本对于动态而言太旧,则转换为字典)并从那里继续。
如果我有这样一段话:
MODULE Local (Parent := "Local",
ParentModPortId := 1,
CatalogNumber := "1756-L71S",
Vendor := 1,
ProductType := 14,
ProductCode := 158,
Major := 27,
Minor := 11,
PortLabel := "RxBACKPLANE",
ChassisSize := 13,
Slot := 11,
Mode := 2#0000_0000_0000_0001,
CompatibleModule := 0,
KeyMask := 2#0000_0000_0001_1111,
SafetyNetwork := 16#0000_3acc_033e_6fa0)
END_MODULE
它目前在我的程序中仅保存为一个简单的字符串。现在,我想将每一行保存为数组中的一个条目,我该怎么做呢?
使用String.Split
函数
string[] paragraph =yourString.Split(",");
尝试使用双引号作为转义字符
String Para = @"MODULE Local (Parent := ""Local"",
ParentModPortId:= 1,
CatalogNumber:= ""1756-L71S"",
Vendor:= 1,
ProductType:= 14,
ProductCode:= 158,
Major:= 27,
Minor:= 11,
PortLabel:= ""RxBACKPLANE"",
ChassisSize:= 13,
Slot:= 11,
Mode:= 2#0000_0000_0000_0001,
CompatibleModule:= 0,
KeyMask:= 2#0000_0000_0001_1111,
SafetyNetwork:= 16#0000_3acc_033e_6fa0)
END_MODULE";
我观察到格式与 JSON 非常相似,尽管使用了其他分隔符。
因此,解决它的一种方法是将其转换为 JSON:
- 将所有“:=”替换为“=”
- 将 ( 和 ) 替换为 { 和 }
- 将 , 替换为 ;
- 删除模块标签
然后您可以使用 JSON 库解析它,例如 NewtonSoft,它位于 NuGet 上。
如果您事先知道预期的字符串对,您可以将其转换为定义的 class。否则,将其转换为动态(如果您的 .NET 版本对于动态而言太旧,则转换为字典)并从那里继续。