Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.05.2010, 19:42
Интересующийся
Отправить личное сообщение для Papa Посмотреть профиль Найти все сообщения от Papa
 
Регистрация: 16.12.2009
Сообщений: 19

Помогите с позиционными проверки в регулярных выражениях
Здраствуйте, составлял регулярное выражение для парсинга xml документа, структура такая:
<item>
	первый тег
</item>
<item>
	второй тег
</item>

Паттерн такой:
preg_match_all('/(?<=<item>).+(?=<\/item>)/s', $str, $matches);
так вот надо найти то что внутри этих тегов и поместить в массив результатов. Это регулярное выражение выбирает все от первого до последнего тега <item>, но мне нужно чтобы оно не пропускало внутренние теги, а оно пропускает и включает в результат. Какой тогда смысл от позиционной проверки (?=<\/item>) если можно просто написать этот тег за искомой строкой). Можно ли пояснить как работать с такими проверками, как составить регулярное в моем случае или дать ссылку почитать, зарнее спасибо) Можно конечно воспользоваться SimpleXML или ф-иями php но нужны именно регулярки.
Ответить с цитированием
  #2 (permalink)  
Старый 23.05.2010, 19:53
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Одними регулярками здесь не обойтись, нужно писать конечный автомат. Была уже подобная тема, попробуйте поискать.
туплю, я думал речь про внутренние теги.

Последний раз редактировалось Riim, 24.05.2010 в 00:40.
Ответить с цитированием
  #3 (permalink)  
Старый 23.05.2010, 19:59
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

preg_match_all('/(?<=<item>).+?(?=<\/item>)/s', $str, $matches);
Ответить с цитированием
  #4 (permalink)  
Старый 23.05.2010, 20:23
Интересующийся
Отправить личное сообщение для Papa Посмотреть профиль Найти все сообщения от Papa
 
Регистрация: 16.12.2009
Сообщений: 19

Ух ты а как это?, +? а можно пояснить как вопросительный знак помог, мысли не было его использовать даже
Ответить с цитированием
  #5 (permalink)  
Старый 23.05.2010, 20:41
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Это называется "ленивый квантификатор"
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экранирование квадратных скобок в регулярных выражениях Holod Я не знаю javascript 3 27.05.2009 22:52