php - 按分隔符拆分字符串,但如果转义则不拆分

标签 php regex preg-split

如何通过分隔符拆分字符串,但如果转义则不行?比如我有一个字符串:

1|2\|2|3\\|4\\\|4

分隔符是|,转义分隔符是\|。此外,我想忽略转义的反斜杠,因此在 \\| 中,| 仍然是分隔符。

所以使用上面的字符串,结果应该是:

[0] => 1
[1] => 2\|2
[2] => 3\\
[3] => 4\\\|4

最佳答案

使用黑魔法:

$array = preg_split('~\\\\.(*SKIP)(*FAIL)|\|~s', $string);

\\\\. 匹配反斜杠后跟一个字符,(*SKIP)(*FAIL) 跳过它,\|匹配您的分隔符。

关于php - 按分隔符拆分字符串,但如果转义则不拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6243778/

相关文章:

javascript - 清理变量并将 php 代码与表单的 Jquery 验证集成

php - array_slice 在大数组上有负偏移

PHP preg_split : Split string by forward slash

php - php 中的 preg_split 在数字前面和字母或空格后面的点处拆分字符串

.net - 一场比赛后进行多场比赛

php - 在 & 但不是 && 处拆分字符串

php - mysql_fetch_assoc()期望参数1是资源,给定对象

php - SQL 查询以从通配符列等于值的所有表中选择所有行

javascript - 如何让我的正则表达式只返回完全匹配

regex - 在perl正则表达式中匹配多行中的单词