php - 将用逗号分隔的文本拆分为一个数组,但忽略转义分隔符 \,
问题描述
文字是
a,b,c,d\,e,f,g
我想根据分隔符将它们拆分成一个数组,
并忽略转义,
的\,e
["a","b","c", "d,e", "f", "g"]
我试过使用爆炸之类的
explode(',', $data);
但它不识别\
文本中的转义。如何拆分文本并忽略转义的分隔符?
解决方案
您可以使用preg_split
基于未转义的逗号进行拆分(在逗号上使用否定的后视来检查它前面没有 a \
),尽管您需要进行后处理以删除反斜杠:
$string = 'a,b,c,d\,e,f,g';
$array = preg_split('/(?<!\\\\),/', $string);
$array = array_map(function ($v) { return str_replace('\\', '', $v); }, $array);
print_r($array);
输出:
Array ( [0] => a [1] => b [2] => c [3] => d,e [4] => f [5] => g )
推荐阅读
- node.js - 如何使用 Xpath 在节点 JS 中查找元素?
- excel - 删除不包含多个指定单词之一的单元格
- java - 运行 SqlPlus 的 Jar 文件 - Mac OS X
- prometheus - Prometheus“向上”指标如何工作
- powershell - 如何在我的 PowerShell HTML 报告中添加 2 列?
- couchbase - Couchbase 服务器恢复
- javascript - Javascript:使用函数属性作为“静态”变量和优化
- sql-server - 使用 Report Builder 3.0 对 10 个数据库运行报告
- python - Jupyter Notebook:ModuleNotFoundError:没有名为“matplotlib.pylot”的模块
- python - 在python中调用数据库时如何说高度是否重复第一个打印重量较小的行?