За последние 24 часа нас посетили 17279 программистов и 1302 робота. Сейчас ищут 882 программиста ...

Проблема с регуляркой - в выдаче массив всех символов

Тема в разделе "Регулярные выражения", создана пользователем Игорь2, 7 окт 2017.

  1. Игорь2

    Игорь2 Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте.

    Помогите, пожалуйста - уже всю голову сломал!
    Почему приведенный код регулярки выдает на выходе массив всех символов строки поиска???


    PHP:
    1. <?php
    2.  
    3.  $text='begin (find) end';
    4.  //$text=iconv("UTF-8", "CP1251", $text);
    5.  preg_match_all('{ \(  (.*?) \) }xs',$text,$founds);
    6.  
    7.  print_r($text);
    8.  print_r($founds);  
    9.  
    10. ?>
    Код ( (Unknown Language)):
    1. begin (find) endArray
    2. (
    3.   [0] => Array
    4.   (
    5.   [0] =>
    6.   [1] => b
    7.   [2] =>
    8.   [3] => e
    9.   [4] =>
    10.   [5] => g
    11.   [6] =>
    12.   [7] => i
    13.   [8] =>
    14.   [9] => n
    15.   [10] =>
    16.   [11] =>  
    17.   [12] =>
    18.   [13] => (
    19.   [14] =>
    20.   [15] => f
    21.   [16] =>
    22.   [17] => i
    23.   [18] =>
    24.   [19] => n
    25.   [20] =>
    26.   [21] => d
    27.   [22] =>
    28.   [23] => )
    29.   [24] =>
    30.   [25] =>  
    31.   [26] =>
    32.   [27] => e
    33.   [28] =>
    34.   [29] => n
    35.   [30] =>
    36.   [31] => d
    37.   [32] =>
    38.   )
    39.  
    40.   [1] => Array
    41.   (
    42.   [0] =>
    43.   [1] => b
    44.   [2] =>
    45.   [3] => e
    46.   [4] =>
    47.   [5] => g
    48.   [6] =>
    49.   [7] => i
    50.   [8] =>
    51.   [9] => n
    52.   [10] =>
    53.   [11] =>  
    54.   [12] =>
    55.   [13] => (
    56.   [14] =>
    57.   [15] => f
    58.   [16] =>
    59.   [17] => i
    60.   [18] =>
    61.   [19] => n
    62.   [20] =>
    63.   [21] => d
    64.   [22] =>
    65.   [23] => )
    66.   [24] =>
    67.   [25] =>  
    68.   [26] =>
    69.   [27] => e
    70.   [28] =>
    71.   [29] => n
    72.   [30] =>
    73.   [31] => d
    74.   [32] =>
    75.   )
    76.  
    77.   [2] => Array
    78.   (
    79.   [0] =>
    80.   [1] => b
    81.   [2] =>
    82.   [3] => e
    83.   [4] =>
    84.   [5] => g
    85.   [6] =>
    86.   [7] => i
    87.   [8] =>
    88.   [9] => n
    89.   [10] =>
    90.   [11] =>  
    91.   [12] =>
    92.   [13] => (
    93.   [14] =>
    94.   [15] => f
    95.   [16] =>
    96.   [17] => i
    97.   [18] =>
    98.   [19] => n
    99.   [20] =>
    100.   [21] => d
    101.   [22] =>
    102.   [23] => )
    103.   [24] =>
    104.   [25] =>  
    105.   [26] =>
    106.   [27] => e
    107.   [28] =>
    108.   [29] => n
    109.   [30] =>
    110.   [31] => d
    111.   [32] =>
    112.   )
    113.  
    114. )
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.787
    Симпатии:
    1.328
    Адрес:
    Лень
  3. Игорь2

    Игорь2 Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    3
    Симпатии:
    0
    К сожалению, не помогло...
     
  4. Emilien

    Emilien Активный пользователь

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    Ну так оно и в исходном виде норм работает http://sandbox.onlinephpfunctions.com/code/efd9c9f5f6ca15efe720a013ab5d3ea06b38642a

    В регулярке всего одна сохраняющая группа, а в результатах их две.
    Такое могло быть если не эранированы скобки '{ ( (.*?) ) }xs'.
     
  5. Игорь2

    Игорь2 Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    3
    Симпатии:
    0
    скобки экранированы: '{ \( (.*?) \) }xs'
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.557
    Симпатии:
    631
    Я запускаю код из первого поста и он работает правильно, не понимаю в чем проблема