[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ИЛИ в регулярных выражениях
beginer
Подскажите как правильно использовать метасимвол "|"
Есть страница с которой необходимо извлечь имена

<p>Есть парень Артур</p>
<p>Есть смелый парень Мирон</p>

Можно, конечно было бы написать

/<p>Есть\s.*парень\s(.+)<\/p>/

но проблема в том, что код гораздо больше и если использовать ".*" то результата нет

Как с помощью "|" решить данную задачу



Спустя 5 минут, 26 секунд (7.12.2010 - 13:42) grawest написал(а):
Вам просто извлечь имена?

Спустя 3 минуты, 15 секунд (7.12.2010 - 13:45) beginer написал(а):
Да

Спустя 50 минут, 37 секунд (7.12.2010 - 14:36) grawest написал(а):
ну так...
'/Артур|Мирон/'
или я не понял задания.
$string = '<p>Есть парень Артур<br>Есть смелый парень Мирон</p>';
echo $string;
$pattern = '/Артур|Мирон/';
$replacement = 'ЗАМЕНА';
$string = preg_replace($pattern,$replacement,$string);
echo $string;
Результат:
Есть парень ЗАМЕНА
Есть смелый парень ЗАМЕНА

Спустя 9 минут, 39 секунд (7.12.2010 - 14:46) beginer написал(а):
Наверное я неправильный пример привел (он вымышленный),
оригинал сложный.

Проблема в том, что я не знаю имен, рег.выр. как раз и должны выбрать эти имена

Могу ли я написать:

/<p>(?:Есть\s)|(?:Есть\s.*)парень\s(.+)<\/p>/

Перечисляя варианты:
(?:Есть\s) - <p>Есть парень Артур</p>
(?:Есть\s.*) - <p>Есть смелый парень Мирон</p>

Ну а РВ выберет имена и занесет их в массив
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.