Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: PCRE - общие вопросы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Pavelbeginner
Отправлено: 16 Августа, 2010 - 01:09:45
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




можно ли в PCRE задать поиск повторяющегося слова или фразы, то есть мне например нужно найти Меня зовут Паша Меня зовут Паша, то есть, чтобы за одной фразой шла другая и так до бесконечности? То есть, если нужно символ повторить, то это делается так .*, а как это же сделать, но над целой фразой?
(Добавление)
Или необязательно слова, например мне нужно, чтобы вот такая конструкция искалась бесконечно много раз : .*?:.*?<<<.*? можно ли как-то это сделать?
 
 Top
JustUserR
Отправлено: 16 Августа, 2010 - 01:42:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Pavelbeginner пишет:
То есть, если нужно символ повторить, то это делается так .*, а как это же сделать, но над целой фразой?
Для применения оператора квантификации в группе символов необходимо предварительно заключить их в скобки - причем если вы не хотите делать их запоминающими то можете использовать конструкцию (?: text )


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Pavelbeginner
Отправлено: 16 Августа, 2010 - 02:11:57
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




А могу я внутри скобок помимо обычных символов использовать метасимволы, в общем могу ли я например записать так Я (оч.?нь)* люблю кашу
 
 Top
Uchkuma
Отправлено: 16 Августа, 2010 - 09:10:14
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Pavelbeginner пишет:
если нужно символ повторить, то это делается так .*

'.' - это один любой символ. '*', '?' и '+' идущие за символом или классом обозначают количество их повторений.
'*' - от 0 до бесконечности
'?' - 0 или 1
'+' - 1 и более
Т.о. '.*' - символ может как повторяться, так и его может вообще не быть. Если нужно задать его 100% повторение, надо писать так '.{2}', т.е. от 2-х раз и более.
'{x,y}' - такая конструкция задает конкретное количество повторений стоящего перед ней символа или класса от 'x' до 'y'. Если 'y' опущен, то от 'x' до бесконечности.

Pavelbeginner пишет:
в общем могу ли я например записать так Я (оч.?нь)* люблю кашу

'Я (оч.?нь)* люблю кашу' - под такой шаблон попадут такие фразы:
Я очень люблю кашу
Я очнь люблю кашу
Я люблю кашу
Я оченьочень люблю кашу
Я очньочнь люблю кашу
А также 'Я оченьоченьоченьоченьоченьочень люблю кашу' Радость

(Отредактировано автором: 16 Августа, 2010 - 09:11:35)

 
 Top
JustUserR
Отправлено: 17 Августа, 2010 - 01:44:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Pavelbeginner пишет:
А могу я внутри скобок помимо обычных символов использовать метасимволы
В регулярных выражениях скобки выполняют функцию группирования - и могут содержать любые допустимые элеметны в том числе такие же группирующие скобки - при этом порядок поиска соответствий по шаблону происходит так что значения числа используемых вхождений для внешних и внутренних квантификаций - подбирается таким образом чтобы достичь совпадения всего шаблона в целом
При этом если вы используете операцию предварительноно просмотра вперед или назад - то все находящиейся в нее подшаблоны не могут содержать квантификацию с динамически определяемым числом вхождений


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB