c# - 正则表达式 - 匹配由引号定义并用逗号分隔的字符串
问题描述
我需要帮助设置一个可以将一些字符串与一些逗号分隔开的正则表达式。
这是我到目前为止的正则表达式:
(?<string>(?<=")(?:[^""\\]|\\.)*(?="))|(?<comma>\,)
这个想法是对用引号括起来定义的字符串进行分组,并对逗号进行分组。一个用例是:
"Dog", "cat", "Dog, cat"
想要的输出:
字符串组(3 个元素):
- 狗
- 猫
- 狗猫
逗号组(2 个元素):
- ,
- ,
问题是我的正则表达式模式也将逗号读取为字符串,因为它被引号包围,所以我的输出是:
字符串组(5 个元素):
- 狗
- ,
- 猫
- ,
- 狗猫
逗号组(0 个元素):
解决方案
你可以试试:
var testString = "\"Dog\", \"cat\", \"Dog, cat\"";
var splitted = Regex.Split(testString, @"""\s*,\s*""");.Select(s => s.Trim('"'));
使用的模式:"\s*,\s*"
,它以逗号分隔,仅在引号之间:", "
,也可以在其间有空格。
它还会"
在拆分后从元素中修剪,因为第一个和最后一个元素会有额外的 quetes :)
推荐阅读
- c# - 实现 IAsyncEnumerable 的空 IQueryable
- react-native - 通过 React Native 的 Axios 发布调用会导致云 url 的网络错误适用于 ios 而不适用于 android
- postgresql - 致命:用户“postgres”的密码验证失败。无法连接
- html - 大写后的文本小写是可能的吗?
- django - 如何在投票系统的 Django 数据库中增加投票字段
- php - 如何在 Laravel 中更新数据库记录
- reactjs - 无法在反应 redux 项目的返回函数中使用查找函数
- c# - WPF 应用程序正在使用大量 GPU 功能
- design-patterns - 如何处理我的有效负载以在 cassandra 中具有原子性/一致性的多个表中插入批量数据?
- php - 三个 MySQL 表到一个主表的数据