[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярка
dendav
Здравствуйте. Нужна помощь.

Есть файл вида:

<li><a href="<?php echo MY_HOST.'data/page/text'; ?>">Текст</a></li>
<li><a href="<?php echo MY_HOST.'data/page2/text2'; ?>">Текст</a></li>
<li><a href="<?php echo MY_HOST.'data/page3/text3'; ?>">Текст</a></li>

Нужно извлечь text, text2 и т. д. Сложность в том, что всё что находится между двух слешей (в данном примере это "page") может меняться.

Предполагаю, что нужно разобрать файл на строки, и в цикле пройти регуляркой:

preg_match('#<li><a href="<\?php echo MY_HOST.\'data/\w*(.+?)\';#i', $string, $text);


Но увы, в синтаксисе регулярных выражений я не силён и что-то не работает.

Может быть нужно что-то вроде "#/X/(.+?)';#i" где X - это выражение описывающее произвольный текст на латинице.

То есть мы ищем что-то находящееся после второго слеша и до символов '; Но как это правильно оформить?
rooor
сразу говорю - в регулярках не силен)
$a = "<li><a href='<?php echo MY_HOST.'data/page/text'; ?>'>Текст</a></li>
<li><a href='<?php echo MY_HOST.'data/page2/text2'; ?>'>Текст</a></li>
<li><a href='<?php echo MY_HOST.'data/page3/text3'; ?>'>Текст</a></li>"
;

preg_match_all("#/[a-zA-Z0-9]+/(.+)';#", $a, $b);
echo '<pre>';
print_r($b[1]);
dendav
Спасибо, вроде бы работает. Сердечно благодарю.
Быстрый ответ:

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