我的目标是在a|b||c|d
,a
和b||c
中拆分d
字符串。
我尝试了几种方法,但最后以任何方式分割我的字符串:
回顾后:
var_dump(preg_split("/\\|(?<!\\|\\|)/", 'a|b||c|d'));
array (size=4)
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string '|c' (length=2)
3 => string 'd' (length=1)
先行:
var_dump(preg_split("/(?!\\|\\|)\\|/", 'a|b||c|d'));
array (size=4)
0 => string 'a' (length=1)
1 => string 'b|' (length=2)
2 => string 'c' (length=1)
3 => string 'd' (length=1)
如何忽略双管?
答案 0 :(得分:4)
根据以下使用负面外观的正则表达式来分割您的输入。
(?<!\|)\|(?!\|)
|
是正则表达式中的一个特殊元字符,其作用类似于逻辑OR或交替运算符。要匹配文字|
符号,您需要转义正则表达式中的|
,例如\|
答案 1 :(得分:1)
您可以使用此正则表达式进行拆分:
(?<!\|)\|(?!\|)