За последние 24 часа нас посетили 16866 программистов и 1292 робота. Сейчас ищут 1424 программиста ...

небольшой вопрос

Тема в разделе "Регулярные выражения", создана пользователем NaRuVi, 20 дек 2006.

  1. NaRuVi

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

    С нами с:
    14 дек 2006
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Москва
    к сож. не приходилось работать с регулярными выражениями. Но вот срочно встал вопрос
    в файле содержаться определенные тэги шаблона вида {tag}
    где tag - содержит только латинские символы без цифр и пробелов. Подскажите как можно получить полный список этих тэгов...
    Спасибо заранее
     
  2. Lazarius

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

    С нами с:
    27 окт 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    г. Москва
    По моему вот так, хотя мне самому эти выражения лчень тяжело даются :)
    preg_match_all("/\{[a-zA-Z]*\}/", $file_content, $matches);
     
  3. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. preg_match_all('~\{([a-z]+)\}~is', $text, $match, PREG_PATTERN_ORDER);
    2. print_r($match[1]);
     
  4. Lazarius

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

    С нами с:
    27 окт 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    г. Москва
    ага, я почти правильно написал
    это радует
     
  5. NaRuVi

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

    С нами с:
    14 дек 2006
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Москва
    simpson
    Lazarius
    не хочет :(
     
  6. Lazarius

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

    С нами с:
    27 окт 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    г. Москва
    а что выдает print_r($match или $matches);
     
  7. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    NaRuVi, пару строк из файла, в которых содержатся такие тэги, можно?
     
  8. NaRuVi

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

    С нами с:
    14 дек 2006
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Москва
    <body>
    <p>{Tag1}</p>
    <p>{tag2}</p>
    <p align="right">{tag3}</p>
    <p align="center">{Последний тэг}</p>
    </body>



    это как пример...

    при этом {последний тэг} должен игнорироваться
     
  9. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
     
  10. NaRuVi

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

    С нами с:
    14 дек 2006
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Москва
    simpson
    упс... щас проверю сорри

    добавлено:
    А если с цифрами?
     
  11. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    NaRuVi, ниодин из приведенных тобой тэгов не соответствует твоему условию.
     
  12. Lazarius

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

    С нами с:
    27 окт 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    г. Москва
    simpson
    с цифрами это наверное просто пример
    NaRuVi
    если надо с цифрами, то [a-zA-Z0-9]
     
  13. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Lazarius, почитайте про модификаторы шаблонов на досуге. в частности, про модификатор "i".
     
  14. NaRuVi

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

    С нами с:
    14 дек 2006
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Москва
    Всем спасибо - работает, тему можно закрывать
     
  15. Lazarius

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

    С нами с:
    27 окт 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    г. Москва
    Я относительно к своему примеру, в принципе я знаю что модификатор i служит для игнорирования регистра
     
  16. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1.  
    2. <?php
    3.  
    4. $file = file_get_contents('myfile.html');
    5. preg_match_all('%\{[\w]+\}%', $file, $matches);
    6. print_r($matches);
    7. ?>
    8.  
    Бесплатный совет: читайте мануал. Скачайте с php.net manual.chm на русском и читайте,читайте... там очень много все есть интересного, полезного и т.д. Формат chm рекомендую потому что в нем есть индекс, т.е. быстрый поиск нужного описания функции.
     
  17. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    квадратные скобки тут лишние.
    и условием было - только латинские буквы, а не символы, образующие "слово".
     
  18. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    simpson
    Потом были цифры, потом русские символы... а квадратные скобки тут роли не играют совсем.
     
  19. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    AlexGousev, роли не играют, поэтому и лишние. :)