[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Изучаю регулярки
Jallvar
Всем привет. Учу регулярки. Очень непонятная вещь.
Мне нужно узнать есть ли ссылка в строке т.е.
$string ="Тут строка<a href="index.php">На главную!</a>";
preg_match('#<a href="{a-z.}{1,}>{а-я}{1,}</a>"#', $string)
Будет ли такое выражение верно. Если нет, то почему?
Игорь_Vasinsky
нет, вы не внимательно читали про составление паттернов для regexp и плохо знакомы с понятием конкатенации

_____________
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
Jallvar
Вот в этом у меня и идет ошибка. Я плохо понимаю как правильно, составляются регулярные выражения.
inpost
Нет.
Ну для начала ты потерял кавычки и разместил их как-то не так.
Далее используешь везде фигурные скобки. Есть круглые, есть фигурные. Фигурные нужны для указания количества, перечисление символов в квадратных.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Игорь_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
beginner95

<?php
preg_match( "#^(http:\/\/)?(www.)?[-0-9a-z]+\.[a-z]{2,6}\/?$#u", $string )
?>

Как то так :)

_____________
Лучший хостинг
Invis1ble
Jallvar
А по какой литературе ты изучаешь регулярки? smile.gif
По ответам на форуме, да?

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

curious
Привет всем, столкнулся с такой проблемой. Значица есть функция ereg_replace, у меня она по паттерну искала в конце строки 2 символа 'et' и заменяла на пустоту ''
С недавних пор вылезла Deprecated: Function ereg_replace() is deprecated
Цитата
С версии PHP 5.3.0 эта функция считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.


Ну в общем проблему то я решил через функцию substr_replace.
Думаю также что эту проблему можно решить через preg_replace, но незадача, я не шарю в регулярках...
Подскажите, что лучше(выгоднее, правильнее...) использовать substr_replace или preg_replace?
Также скажите плиз по какой лит-ре вы изучали регулярки?
Игорь_Vasinsky
preg_replace()
и вместо паттернов для preg_match(), preg_match_all() - есть готовые флаги filter_var

_____________
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
Цитата (curious @ 21.01.2013 - 22:27)
Также скажите плиз по какой лит-ре вы изучали регулярки?

Джеффри Фридл "Регулярные выражения".
Кроме нее - документация на php.net, regular-expressions.info, форумы (по большей части stackoverflow). Недавняя находка - http://www.asiteaboutnothing.net/regex/
killer8080
Цитата (curious @ 21.01.2013 - 21:27)
у меня она по паттерну искала в конце строки 2 символа 'et' и заменяла на пустоту ''

Ну и на кой тут регулярка? rtrim() чем не угодил?
Winston
Свернутый текст
Цитата (killer8080 @ 21.01.2013 - 23:03)
rtrim() чем не угодил?

Видимо тем, что не все знают о нем smile.gif
Игорь_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
Быстрый ответ:

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