2016-10-20 9 views
-2

の外のすべてを取得しますセミコロンの文字列 - >私はすべての最初の層の値を取得したい。PHP正規表現は、私は、次の形式の文字列を持っている二つのタグ

EDIT: 私の最初の試みは、このされていた:

preg_match_all("(.*?)~\{\}~(.*?)", $string,$match); 

が、動作していないよう...

+1

は、いくつかのコードを書いてみる...そして、あなたの努力 – RomanPerekhrest

+0

ピュアコード書き込み要求を示し、スタックオーバーフローに関するトピックはありません。 の質問は*具体的なプログラミングの問題と関連していますが、 はあなた自身で書くことを喜んで手助けします! [あなたが試したこと](http://stackoverflow.com/help/how-to-ask)、およびあなたが立ち往生している場所を教えてください。 これはまた、あなたの質問によく答えるのにも役立ちます。 –

答えて

1
$str = 'firstlayer{secondlayer;secondlayer,secondlayer};firstlayer{secondlayer;secondlayer}'; 
if (preg_match_all('~(\w+)\{(.*?)\}~', $str, $m)) { 
    print_r($m); 
} 

出力に直接分割することができます:

Array 
(
    [0] => Array 
     (
      [0] => firstlayer{secondlayer;secondlayer,secondlayer} 
      [1] => firstlayer{secondlayer;secondlayer} 
     ) 

    [1] => Array 
     (
      [0] => firstlayer 
      [1] => firstlayer 
     ) 

    [2] => Array 
     (
      [0] => secondlayer;secondlayer,secondlayer 
      [1] => secondlayer;secondlayer 
     ) 

) 
0

あなたは、次の正規表現を使用して、空白の文字列と一致置き換えることができます。 demo:

{[^}]*} 

それとも;(?=[^}]*(?:{[^{}]*})+)

関連する問題