Здравствуйте. Помогите, пожалуйста - уже всю голову сломал! Почему приведенный код регулярки выдает на выходе массив всех символов строки поиска??? PHP: <?php $text='begin (find) end'; //$text=iconv("UTF-8", "CP1251", $text); preg_match_all('{ \( (.*?) \) }xs',$text,$founds); print_r($text); print_r($founds); ?> Код ( (Unknown Language)): begin (find) endArray ( [0] => Array ( [0] => [1] => b [2] => [3] => e [4] => [5] => g [6] => [7] => i [8] => [9] => n [10] => [11] => [12] => [13] => ( [14] => [15] => f [16] => [17] => i [18] => [19] => n [20] => [21] => d [22] => [23] => ) [24] => [25] => [26] => [27] => e [28] => [29] => n [30] => [31] => d [32] => ) [1] => Array ( [0] => [1] => b [2] => [3] => e [4] => [5] => g [6] => [7] => i [8] => [9] => n [10] => [11] => [12] => [13] => ( [14] => [15] => f [16] => [17] => i [18] => [19] => n [20] => [21] => d [22] => [23] => ) [24] => [25] => [26] => [27] => e [28] => [29] => n [30] => [31] => d [32] => ) [2] => Array ( [0] => [1] => b [2] => [3] => e [4] => [5] => g [6] => [7] => i [8] => [9] => n [10] => [11] => [12] => [13] => ( [14] => [15] => f [16] => [17] => i [18] => [19] => n [20] => [21] => d [22] => [23] => ) [24] => [25] => [26] => [27] => e [28] => [29] => n [30] => [31] => d [32] => ) )
Ну так оно и в исходном виде норм работает http://sandbox.onlinephpfunctions.com/code/efd9c9f5f6ca15efe720a013ab5d3ea06b38642a В регулярке всего одна сохраняющая группа, а в результатах их две. Такое могло быть если не эранированы скобки '{ ( (.*?) ) }xs'.