2015-11-06 51 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)