За последние 24 часа нас посетили 17763 программиста и 1283 робота. Сейчас ищут 1410 программистов ...

Простая регулярка

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

  1. Zerox

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

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    Добрый день!
    Никак не могу сделать обычное регулярное выражение.
    Есть строка, допустим
    Код (Text):
    1. $string = "asdasdasd (A)SPORT.txt";
    Нужно вытащить оттуда (A)SPORT.txt с расчетом, что в скобках может быть любая буква, а вместо SPORT любое слово.
    Сделал
    Код (Text):
    1. preg_match_all('/\([A-Z]\)*\.txt/',$string, $files);
    Не выводит ничего.
    Объясните, пожалуйста, в чем у меня ошибка.
    Заранее спасибо!
     
  2. aspirin

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

    С нами с:
    17 мар 2012
    Сообщения:
    12
    Симпатии:
    0
    Попробуй так:
    Код (Text):
    1.  
    2.     $string = "asdasdasd (A)SPORT.txt\nasdasdasd (A)AUTO.txt";
    3.     preg_match_all('/\([A-Z]\)([A-Z]+).txt/,$string, $files);
    4.     echo "<pre>";
    5.     var_dump($files[0]);
     
  3. Zerox

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

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    Спасибо!
     
  4. kmichael

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

    С нами с:
    20 сен 2011
    Сообщения:
    19
    Симпатии:
    0
    Адрес:
    Новосибирск
    * спец. символ, квантификатор повторений, в вашей интерпретации ")" может повторяться 0 или более раз
    таким образом ваше рег. выражение должно найти совпадения в строке, вида
    Код (Text):
    1.  
    2. $string = "asdasdasd (A)SPORT(A))))).txt";
    для исправления вашего выражения необходимо добавить ".", вот так
    Код (Text):
    1. preg_match_all('/\([A-Z]\).*\.txt/',$string, $files);
     
  5. Zerox

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

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    Спасибо! Хоть разобрался:)