fork(4) download
  1. <?
  2. $s = "Несколько видов {больших массивов|строк|классов|различных функций} могут быть совершенно {разными|непохожими} по свойствам и качествам{.|!|?}";
  3. $pattern = "/((\\w|\\s)+)|(\\{(((\\w|\\s|[.!?])|\\|)+)\\})/u";
  4. preg_match_all($pattern, $s, $matches);
  5. print_r($matches);
  6. ?>
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Array
(
    [0] => Array
        (
            [0] => Несколько видов 
            [1] => {больших массивов|строк|классов|различных функций}
            [2] =>  могут быть совершенно 
            [3] => {разными|непохожими}
            [4] =>  по свойствам и качествам
            [5] => {.|!|?}
        )

    [1] => Array
        (
            [0] => Несколько видов 
            [1] => 
            [2] =>  могут быть совершенно 
            [3] => 
            [4] =>  по свойствам и качествам
            [5] => 
        )

    [2] => Array
        (
            [0] =>  
            [1] => 
            [2] =>  
            [3] => 
            [4] => м
            [5] => 
        )

    [3] => Array
        (
            [0] => 
            [1] => {больших массивов|строк|классов|различных функций}
            [2] => 
            [3] => {разными|непохожими}
            [4] => 
            [5] => {.|!|?}
        )

    [4] => Array
        (
            [0] => 
            [1] => больших массивов|строк|классов|различных функций
            [2] => 
            [3] => разными|непохожими
            [4] => 
            [5] => .|!|?
        )

    [5] => Array
        (
            [0] => 
            [1] => й
            [2] => 
            [3] => и
            [4] => 
            [5] => ?
        )

    [6] => Array
        (
            [0] => 
            [1] => й
            [2] => 
            [3] => и
            [4] => 
            [5] => ?
        )

)