[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите составить регулярное выражение
Страницы: 1, 2
seoinby
Есть html строка: <a href="showthread.php?t=111" id="thread_title_111" style="font-weight:bold">Текст</a>

Помогите выдрать слово "Текст".

нужна регулярка для preg_match_all
Использую библиотеку cURL
Placido
$text = '<a href="showthread.php?t=111" id="thread_title_111" style="font-weight:bold">Текст</a>';
preg_match_all('~<a href="showthread.php\?t=111" id="thread_title_111" style="font-weight:bold">(Текст)</a>~', $text, $matches);
echo $matches[1][0];//Текст
sergeiss
Placido - а если хоть одну букву изменить внутри тэга, среди параметров? wink.gif
Решение совершенно не универсальное.


seoinby - а почему именно регуляркой хочешь сделать? Есть же и другие варианты решения.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Игорь_Vasinsky
Цитата
style="font-weight:bold">(Текст)</a>~'


я думаю не стоит принимать всё в буквальном смысле ;)

style="font-weight:bold">(.*)</a>~'


_____________
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
sergeiss
Вот такое решение мне как-то более понятно (если уж с регуляркой делать)... И уж в любом случае универсально - пофиг, что там внутри тэга, какие там параметры прописаны. Надо текст - берём текст :)

$str='<a href="showthread.php?t=111" id="thread_title_111" style="font-weight:bold">Текст</a>';

$arr=preg_split( '/[<>]+/', $str);

echo '<pre>'.htmlspecialchars( print_r( $arr, true) ).'</pre>';


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Placido
Цитата (sergeiss @ 17.02.2013 - 15:16)
Placido - а если хоть одну букву изменить внутри тэга, среди параметров? wink.gif
Решение совершенно не универсальное.

Не универсальное. Я предложил абсолютно рабочее, но тупое решение, которое соответствует тупому вопросу "Помогите выдрать слово "Текст"". Текст "Текст" выдран успешно.

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

Это если не говорить о том, что парсинг html регулярками может привести к трагическим последствиям biggrin.gif
sergeiss
Цитата (Placido @ 17.02.2013 - 16:44)
Не универсальное. Я предложил абсолютно рабочее, но тупое решение, которое соответствует тупому вопросу "Помогите выдрать слово "Текст"". Текст "Текст" выдран успешно.

Ну да, ну да smile.gif А если человек спросит теперь, как "выдрать" текст "Текст АБВ", расположенный между теми же угловыми скобками, ты предложишь другой "тупой" вариант, содержащий этот текст? wink.gif laugh.gif biggrin.gif

Не лучше ли сразу говорить о более правильном решении, понимая, что под словом "Текст" в начальном вопросе подразумевался любой произвольный, заранее не известный текст? Или это не так интересно, стёба не получится в таком ответе?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Placido
Цитата (sergeiss @ 17.02.2013 - 15:56)
Не лучше ли сразу говорить о более правильном решении, понимая, что под словом "Текст" в начальном вопросе подразумевался любой произвольный, заранее не известный текст?  Или это не так интересно, стёба не получится в таком ответе?

Извини, я не телепат. Не могу угадать, что там подразумевалось. Наличие атрибута id обязательно? "Выдирать" нужно ссылки с определенными "id"? Для любых ссылок или есть ограничения? И т. д. и т. п. Что человек пробовал сделать сам? В чем возникли трудности?

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

А так - да, вопросы типа "напишите за меня регулярку" при том, что человек сам ничего сделать не пытался, кроме желания постебаться у меня ничего не вызывают.

В общем, не хочу флудить, отношение к этому вопросу я пояснил в предыдущем посте.
sergeiss
Placido - "иногда лучше жевать, чем говорить". И ладно бы ты флудил, но стёб - это даже хуже в данном случае, чем флуд.

А после твоего первого ответа (этой темы) никто тебя и не спросит больше smile.gif Потому что видно, что ты собираешься ни думать, ни отвечать нормально.
Цитата (Placido @ 17.02.2013 - 17:22)
Не могу угадать, что там подразумевалось. Наличие атрибута id обязательно? "Выдирать" нужно ссылки с определенными "id"? Для любых ссылок или есть ограничения?

Обрати внимание, что в начальном вопросе было спрошено только о "выдирании" ТЕКСТА. При чем тут id или другие ограничения? Если про них ни слова, значит id и другие параметры могут быть любые.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Игорь_Vasinsky
ну что ты привязался к нему за

Цитата
А после твоего первого ответа (этой темы) никто тебя и не спросит больше


у него их

Цитата
Сообщений: 967


человек
Цитата
Помогите выдрать слово "Текст".


вопрос: приведённый код достанет это слово из предложенного кода?
ответ: да - выдерет.

_____________
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
Placido
Цитата (sergeiss @ 17.02.2013 - 16:30)
"иногда лучше жевать, чем говорить"

Ты переходишь на личности. Поэтому для меня этот разговор окончен.
sergeiss
Цитата (Игорь_Vasinsky @ 17.02.2013 - 17:36)
вопрос: приведённый код достанет это слово из предложенного кода?ответ: да - выдерет.

Ты знаешь... У меня есть пара знакомых "антиресных", с коими общался по прежнему месту работы. Начинаешь говорить "А скажи, пожалуйста....", он тебя тут же перебивает и радостно вопит "Пожалуйста!!!".
Я это к тому, что "первый ответ этой темы" как раз из той же оперы. Ответ ради ответа, не несущий никакой информации. Только стёб и/или флуд. Потому что на основании ответа человек не может решить свою задачу.
Считаешь, что вопрос не правильно поставлен? ОК, скажи именно об этом! Но не надо "упражняться в словестной изящности".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Игорь_Vasinsky
смешная история, но по первому посту ТС всё видно. и что есть, и что надо и даже чем нужно.

так вот у Placido - самый точный ответ.

_____________
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
sergeiss
Цитата (Игорь_Vasinsky @ 17.02.2013 - 17:48)
так вот у Placido - самый точный ответ.

Ага... Как в анекдоте про Холмса и Ватсона, которые приземлились в незнакомом месте на воздушном шаре. И спросили у незнакомца, где они находятся. Тот ответил "В воздушном шаре". А Холмс на основании этого сделал вывод, что незнакомец - программист smile.gif На вопрос Ватсона "но как вы догадались?", Холмс ответил "потому что его ответ абсолютно точный и совершенно бесполезный".

Хорошо, давай разберем этот "самый точный ответ". Готов, да? smile.gif
Вот этот ответ:
Цитата (Placido @ 16.02.2013 - 21:07)
$text = '<a href="showthread.php?t=111" id="thread_title_111" style="font-weight:bold">Текст</a>';
preg_match_all('~<a href="showthread.php\?t=111" id="thread_title_111" style="font-weight:bold">(Текст)</a>~', $text, $matches);
echo $matches[1][0];//Текст

Что предлагается? Поставить круглые скобки вокруг слова "Текст". И получить регулярку. Верно? Для чего надо сначала найти положение слова "Текст"...
Вот только хрень в том, что под этим словом, вобщем-то, подразумевается, ЛЮБОЙ текст. Или кто-нибудь скажет, что это не так?

ОК. Далее. Для того, чтобы "сначала найти положение нужного слова" (до того, как использовать "пласидовский" алгоритм), надо применить какие-то действия. Применили, нашли искомое слово. А это и есть решение задачи! То есть, после этого "алгоритм от пласидо" уже и не нужен никому. То есть получаем, в итоге, что "совершенно правильный ответ" совершенно бестолковый. Потому что он не может быть использован для поиска произвольного текста ссылки.

Вывод: первый ответ "от пласидо" пустой и бесполезный.

Еще аргументы есть, кроме количества ответов у пласидо и "перехода на личности"?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Игорь_Vasinsky
Цитата
подразумевается, ЛЮБОЙ текст

накапливаешь умения телепатии? smile.gif

Цитата
Помогите выдрать слово "Текст".

Помогите выдрать слово "Текст".

"слово" не спроста выделил жирным.

на сам деле ситуация выглядит так:

Цитата
Я предложил абсолютно рабочее, но тупое решение, которое соответствует тупому вопросу "Помогите выдрать слово "Текст"". Текст "Текст" выдран успешно.

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


_____________
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
Быстрый ответ:

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