2015-11-06 48 views
0

我想拆分包含大括号的字符串 将字符串拆分为php中的单词

string = "some-thing_text,text in rounded brackets(word first,word second),Text in curly brackets{some-text(some one,some two),some another},Text in square brackets[some text,some another{some like this(this1,this2)}]" 

输出将是:

Array 
(
    [0] => some-thing_text 
    [1] => text in rounded brackets(word first,word second) 
    [2] => Text in curly brackets{some-text(some one,some two),some another} 
    [3] => Text in square brackets[some text,some another{some like this(this1,this2)}] 
) 
+0

目前,似乎你可以简单地使用'爆炸( “”,$字符串);'由冒号爆炸的字符串。 – Jan

+0

[PHP - 拆分字符串]的可能重复(http://stackoverflow.com/questions/5782027/php-split-string) – r3wt

+0

爆炸就像他们说的。 – aldrin27

回答

1

你可以试试这个,

preg_split('~(?:\[.*?\]|\(.*?\)|\{.*?\})(*SKIP)(*F)|,~', $str); 
  • (?:\[.*?\]|\(.*?\)|\{.*?\})所有的括号匹配块。
  • (*SKIP)(*F)使上一场比赛失败。
  • ,现在它与剩余字符串中的逗号相匹配。

DEMO

+0

好一个+1 Avi .. –

0
preg_split('~,(?![^{]*}|[^(]*\)|[^\[]*\])~', $string)