正则表达式用逗号和等号解析字符串
Posted
技术标签:
【中文标题】正则表达式用逗号和等号解析字符串【英文标题】:REGEX parsing string by comma and equals sign 【发布时间】:2021-09-17 19:47:55 【问题描述】:假设我有一个带上下文的字符串变量
Column00 = 10.02.2020, Column01 = 287, Column02 = 0, Column03 = 200000, Column04 = Оплата (287 от 10.02.2020), Column10 = 10.02.2020, Column11 = 287, Column12 = 200000, Column13 = 0, Column14 = 287~287
我对获取这样的字符串数组非常感兴趣
"10.02.2020", "287", "0", "200000", "Оплата (287 от 10.02.2020)", "10.02.2020", "287", "200000", "0", "287~287"
是否可以通过 REGEX 实现?非常感谢您的帮助。
UPD
有时这部分Column04 = Оплата (287 от 10.02.2020)
可以是Column04 = Оплата (287 от 10.02.2020
或Column04 = Оплата 287 от 10.02.2020)
。
【问题讨论】:
为什么选择正则表达式?使用String.Split method 或Regex.Split method 我忘了说有时候这部分Column04 = Оплата (287 от 10.02.2020)
可以是Column04 = Оплата (287 от 10.02.2020
或者Column04 = Оплата 287 от 10.02.2020)
【参考方案1】:
使用String.Split
方法:
string inp = @" Column00 = 10.02.2020, Column01 = 287, Column02 = 0, Column03 = 200000, Column04 = Оплата (287 от 10.02.2020), Column10 = 10.02.2020, Column11 = 287, Column12 = 200000, Column13 = 0, Column14 = 287~287 ";
var result = string.Concat("", string.Join(", ", inp.Split(new string[]" ", "", " ", "", ", ", " = ", StringSplitOptions.RemoveEmptyEntries).Where(x => !x.StartsWith("Column"))), "");
使用Regex.Split
方法:
var result1 = String.Join("", Regex.Split(inp, @"Column\d1,.=."));
【讨论】:
以上是关于正则表达式用逗号和等号解析字符串的主要内容,如果未能解决你的问题,请参考以下文章