我正在编写一个递归函数,正则表达式部分遇到了麻烦...
希望你们中的一个可以帮助...
给出内容如下的单个字符串...
setDynamicFields=[product_model=1;attribute_id=10];setDynamicFields=[product_model=1;attribute_id=10];joinTable=suppliers;
我需要用分号将其分隔开,但是我需要忽略在[和]之间发现的那些分号,即setDynamicFields=[product_model=1;attribute_id=10]
应将它们整齐地分开,以便可以将其设置setDynamicFields
为键和[product_model=1;attribute_id=10]
值
我尝试了以下方法...
$fields = preg_split("/(\b(?!=[\[])[a-zA-Z_][a-zA-Z_0-9]*\b(?![\]]))/",$line);
$fields = preg_split("/(?!=\[)(;)(?!\])/",$line);
运气不好:-(
有没有人?
非常感谢,
罗伯特
在左括号和右括号之间找不到分号
如果方括号始终是平衡的并且要拆分,则可以使用如下正则表达式:
;(?![^][]*\])
用PHP编写类似:
$fields = preg_split('/;(?![^][]*\])/', $line);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句