За последние 24 часа нас посетили 17819 программистов и 1286 роботов. Сейчас ищут 1379 программистов ...

Парсинг текста

Тема в разделе "Регулярные выражения", создана пользователем host, 24 авг 2007.

  1. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Существует документ и в нем текст. Подскажите пожалуйста, как узнать текст записанный между [ и ]
    например:

    т.е. мне нужно узнать что за слово/слова записаны между левой квадратной скобкой и правой. В данном случае, я должен узнать слова: "систематизация" и "управление"

    Подскажите как это сделать. Спасибо
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    PHP:
    1. <?
    2.  
    3. ### 440hz zone
    4.  
    5. $text = <<<ENDTEXT
    6.  
    7. При наличии большого числа программ и данных необходим строгий их учет и [систематизация]. Операционным системам приходится работать с раз-личными потоками данных, разными аппаратными и периферийными устрой-ствами компьютера. Организовать упорядоченное [управление] всеми этими объектами позволяет файловая система.
    8. На операционные системы персональных компьютеров наложила глубо-кий отпечаток концепция файловой системы, лежащей в основе операционной системы UNIX. В операционной системе UNIX подсистема ввода-вывода уни-фицирует способ доступа, как к файлам, так и к периферийным устройствам. Под файлом при этом понимают набор данных на диске, терминале или каком-либо другом устройстве. Таким образом, файловая система – это система управления данными.
    9.  
    10. ENDTEXT;
    11.  
    12. $pattern = '/\[(.*)\]/Uis';
    13.  
    14. if(preg_match_all($pattern,$text,$math)) {
    15.     print_r($math[1]);
    16. } else {
    17.      echo 'нету ничё...';
    18. }
    19.  
    20. print("\n");
    21.  
    22. ?>
    Код (Text):
    1. www(440hz):~/tests$>php preg2.php
    2. Array
    3. (
    4.     [0] => систематизация
    5.     [1] => управление
    6. )
     
  3. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    спасибо
    440Hz
    получается Array ( [0] => Array ( [0] => [систематизация] ) [1] => Array ( [0] => систематизация) )
    тут идут вложенные массивы, и повторяются: один раз со скобками и без скобок
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    тему только поменяй на осмысленную?
    а то быстренько к "Блондинко" уедешь.
     
  5. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    print_r($math[1]);

    читай код хоть осмысленно?
     
  7. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    есть текст:
    результат замены host на пустоту:
    а нужно:
    Подскажите пожалуйста.
     
  8. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Код (Text):
    1. #\bhost\b#
     
  9. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    так не работает. Уверен, что не туда ставлю. Как правильнее?
    С регулярными выражениями у меня похуже
     
  10. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1. <?php
    2. $pattern = '/\bhost\b/i';
    3. ?>