Алик
Постоялец
Offline
|
|
« : 06-08-2006 05:02 » |
|
Вроде, регулярки используются во многих языках, так что пишу в Общий. Как в шаблоне указать, в отрезке текста НЕ должно встречаться определенное СЛОВО то есть, как объяснить, что шаблоном (или частью его) является строка, состоящая из любых символов, но не содержащая слова "Алик"? чтобы в строка "Классный чувак наш Алик!" была выбрана подстрока "Классный чувак наш ".
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #1 : 06-08-2006 08:00 » |
|
В разных системах у регулярных выражений бывает различный синтаксис, хотя принципы работы схожие.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
RXL
|
|
« Ответ #2 : 06-08-2006 20:26 » |
|
Вариант для PCRE: /(?{(.*)Алик)*/g В данном примере ищутся все куски текста между словами "Алик". Если слово одно, будет 1 или 2 отрезка, соотв., для 2 - 2 или 3.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алик
Постоялец
Offline
|
|
« Ответ #3 : 07-08-2006 04:26 » |
|
да, речь идет о PCRE 2RXL: спасибо за пример, но задача стоит немного другая: признать текст соответствующим шаблону, если он НЕ СОДЕРЖИТ слова. а в вашем примере тект обязательно такое слово должен содержать, иначе будет отвергнут. Думаю, может, так получится: /(.*)(Алик|)/g надо проверить, как время будет
|
|
|
Записан
|
|
|
|
nikedeforest
|
|
« Ответ #4 : 07-08-2006 07:44 » |
|
А что означает \ и \g? И точно \g, может /g? Если да, то /g знаю что такое.
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
Алик
Постоялец
Offline
|
|
« Ответ #5 : 07-08-2006 09:12 » |
|
я так понимаю, это - модификатор шаблона. но я про него ничего не нашел (по крайней мере, в пхпшной справке)
|
|
|
Записан
|
|
|
|
nikedeforest
|
|
« Ответ #6 : 07-08-2006 09:24 » |
|
Аа, это вы тут про РНР регулярки. ПРосто очень похожи на регулярки для .НЕТ, мне бы там сейчас совет не помешал бы.
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
Алик
Постоялец
Offline
|
|
« Ответ #7 : 07-08-2006 10:18 » |
|
ну регулярки - вещь кроссязыковая...
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #8 : 07-08-2006 14:28 » |
|
ну регулярки - вещь кроссязыковая... Что ты под этим подразумеваешь?
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Алик
Постоялец
Offline
|
|
« Ответ #9 : 07-08-2006 14:46 » |
|
близкий синтаксис. думаю, человек, знакомый с регулярными выражениями одного языка вполне может принимать участие в обсуждении регулярок другого
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #10 : 07-08-2006 16:49 » |
|
Алик, " if (! /Алик/) " - тебе это нужно или что-то другое - нужны разъяснения.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алик
Постоялец
Offline
|
|
« Ответ #11 : 08-08-2006 04:25 » |
|
хорошая идея - покопать в сторону условных подмасок. правда, в pcre они обозначаются не словом if, а знаком вопроса.
кстати, надыбал тут сайт - pcre.ru!
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #12 : 08-08-2006 15:50 » |
|
Алик, извини меня, но по моему ты разговариваешь сам с собой. Я в общем-то не против, но чтобы помогать, нужен диалог.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алик
Постоялец
Offline
|
|
« Ответ #13 : 09-08-2006 04:25 » |
|
попробую поставить задачу точнее: шаблон: "a(здесь должен быть захвачен текст, не содержащий строку lik).*" Этому шаблону соответствует: aflik akjhsdfg, akil, но не соответствует alik
напишите такой шаблон
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #14 : 09-08-2006 16:11 » |
|
/а((?!лик)[^a]*)/
/(а(?!лик)[^a]*)*/
|
|
« Последнее редактирование: 09-08-2006 16:13 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алик
Постоялец
Offline
|
|
« Ответ #15 : 18-08-2006 06:12 » |
|
работает!
|
|
|
Записан
|
|
|
|
|