c# - 正则表达式拆分逗号前面没有特定单词
问题描述
我有一个 CSV 字符串,我想用逗号分割,但前提是逗号前面没有在字符串中的其他地方出现特定单词。
下面是一个输入示例。
1,2,3,Test Message,JSON={ "book": { "title": "Hello, there, world" } }
在上述情况下,单词 'JSON=' 之后的任何逗号都不应导致字符串拆分,因此我希望进行以下拆分。
1
2
3
Test Message
JSON={ "book": { "title": "Hello, there, world" } }
理想情况下,我想用它Regex.Split
来分割字符串,我认为我需要在后面使用否定的外观,但我不确定实现这一点所需的语法。
任何帮助将不胜感激。
解决方案
您可以使用下面的正则表达式来解析此处提到的 CSV 中的 JSON
C# 代码 -
var csvContent = "1,2,3,Test Message,JSON={ \"book\": { \"title\": \"Hello, there, world\" } }";
var split = Regex.Split(csvContent, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
JS 演示 -
const csv = '1,2,3,Test Message,JSON={ "book": { "title": "Hello, there, world" } }';
console.log(csv.split(/,(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/));
推荐阅读
- python - Groupby 和 sum datetime64 在 pandas 中按周末的几天约会
- angular - Angular 如何提供多个错误处理程序
- javascript - 属性更改后,Angular 不会重新渲染以禁用按钮
- javascript - Javascript中的PBKDF2WithHmacSHA512解密
- excel - 如何将客户支出分为低、中、高三个范围。每个范围的值应该是多少?
- android - 最后位置不调用 RecyclerView.Adapter 的 onBindViewHolder()
- android-studio - Android中的TextWatcher没有在其他edittexts中设置值
- pycharm - 如何将新编写的函数导入pychaarm中的笔记本?
- webpack - 带变量的动态导入不起作用
- c# - 卡在 UDP 响应