[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Найти нужный текст в куче мусора.
Страницы: 1, 2
Игорь_Vasinsky
$str = 'какойто текст>физика</td>какойто текст Ф.И.О>Терехова Наталья Александровна</a>какойто текст>Год 1962</a>';

preg_match_all("#>(.*)</a>#iusU", $str, $match);

echo '<pre>' . print_r($match, 1) . '</pre>';


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
упс

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
не успел) поехал домой))

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
саша28
Нужно загнать в переменную текст, который находится между Ф.И.О> и </a>
Но почему то выбирается второе совпадение. Белоус Галина Степановна Не знаю что делать.
наверное поиск начинается с конрца документа а не с начала, непойму что делать.

$str = "какойто текст>физика</td>какойто текст Ф.И.О>Терехова Наталья Александровна</a>
Ф.И.О>Белоус Галина Степановна</a>какойто текст>Год 1962</a>"
;
preg_match('~(?s)(?=.*>физика</td>).*Ф.И.О>([a-zA-Z0-9_а-яА-Я,.?!:;" ]+)</a>~', $str, $rezultat);
echo($rezultat[1]);



Bolik
Цитата
echo($rezultat[1]);


в массиве индексация начинается с 0

посмотри echo($rezultat[0]);
Placido
Цитата (саша28 @ 16.09.2013 - 16:07)
Нужно загнать в переменную текст, который находится между Ф.И.О>  и  </a>
Но почему то выбирается второе совпадение. 

Квантификатор * по умолчанию осуществляет жадный поиск. Поэтому
.*Ф.И.О

означает "любое количество любых символов до последнего Ф.И.О". Чтобы найти "любое количество до первого Ф.И.О" поиск нужно сделать нежадным - либо с помощью модификатора U (инвертирует жадность), либо с помощью добавления к звездочке вопросительного знака - *? .
саша28
Цитата (Placido @ 16.09.2013 - 16:06)
Цитата (саша28 @ 16.09.2013 - 16:07)
Нужно загнать в переменную текст, который находится между Ф.И.О>   и   </a>
Но почему то выбирается второе совпадение. 

Квантификатор * по умолчанию осуществляет жадный поиск. Поэтому
.*Ф.И.О

означает "любое количество любых символов до последнего Ф.И.О". Чтобы найти "любое количество до первого Ф.И.О" поиск нужно сделать нежадным - либо с помощью модификатора U (инвертирует жадность), либо с помощью добавления к звездочке вопросительного знака - *? .

спасибо, помогло
Быстрый ответ:

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