正则表达式用逗号和等号解析字符串

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.2020Column04 = Оплата 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,.=."));

【讨论】:

以上是关于正则表达式用逗号和等号解析字符串的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式怎么提取json中的value?

正则表达式逗号不表达

php写一个正则表达式 匹配逗号

js控制只能输入数字和逗号的正则表达式怎么写?

正则表达式从字符串中提取用逗号分隔的字符串

python中&符号、字母字符和等号的正则表达式