Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по регуляркам  (Прочитано 14308 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алик
Постоялец

kz
Offline Offline

« : 06-08-2006 05:02 » 

Вроде, регулярки используются во многих языках, так что пишу в Общий.
Как в шаблоне указать, в отрезке текста НЕ должно встречаться определенное СЛОВО

то есть, как объяснить, что шаблоном (или частью его) является строка, состоящая из любых символов, но не содержащая слова "Алик"?
чтобы в строка "Классный чувак наш Алик!" была выбрана подстрока "Классный чувак наш ".
 Скромно так...
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 06-08-2006 08:00 » 

В разных системах у регулярных выражений бывает различный синтаксис, хотя принципы работы схожие.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 06-08-2006 20:26 » 

Вариант для PCRE: /(?{(.*)Алик)*/g
В данном примере ищутся все куски текста между словами "Алик". Если слово одно, будет 1 или 2 отрезка, соотв., для 2 - 2 или 3.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алик
Постоялец

kz
Offline Offline

« Ответ #3 : 07-08-2006 04:26 » 

да, речь идет о PCRE
2RXL: спасибо за пример, но задача стоит немного другая: признать текст соответствующим шаблону, если он НЕ СОДЕРЖИТ слова. а в вашем примере тект обязательно такое слово должен содержать, иначе будет отвергнут. Думаю, может, так получится:
/(.*)(Алик|)/g
надо проверить, как время будет
Записан
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 07-08-2006 07:44 » 

А что означает \ и \g? И точно \g, может /g? Если да, то /g  знаю что такое.
Записан

ещё один вопрос ...
Алик
Постоялец

kz
Offline Offline

« Ответ #5 : 07-08-2006 09:12 » 

я так понимаю, это - модификатор шаблона. но я про него ничего не нашел (по крайней мере, в пхпшной справке)
Записан
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 07-08-2006 09:24 » 

Аа, это вы тут про РНР регулярки. ПРосто очень похожи на регулярки для .НЕТ, мне бы там сейчас совет не помешал  бы.
Записан

ещё один вопрос ...
Алик
Постоялец

kz
Offline Offline

« Ответ #7 : 07-08-2006 10:18 » 

ну регулярки - вещь кроссязыковая...
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 07-08-2006 14:28 » 

Цитата: Алик
ну регулярки - вещь кроссязыковая...
Что ты под этим подразумеваешь?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Алик
Постоялец

kz
Offline Offline

« Ответ #9 : 07-08-2006 14:46 » 

близкий синтаксис. думаю, человек, знакомый с регулярными выражениями одного языка вполне может принимать участие в обсуждении регулярок другого
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 07-08-2006 16:49 » 

Алик, " if (! /Алик/) " - тебе это нужно или что-то другое - нужны разъяснения.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алик
Постоялец

kz
Offline Offline

« Ответ #11 : 08-08-2006 04:25 » 

хорошая идея - покопать в сторону условных подмасок. правда, в pcre они обозначаются не словом if, а знаком вопроса.

кстати, надыбал тут сайт - pcre.ru!
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 08-08-2006 15:50 » 

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

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алик
Постоялец

kz
Offline Offline

« Ответ #13 : 09-08-2006 04:25 » 

попробую поставить задачу точнее:
шаблон: "a(здесь должен быть захвачен текст, не содержащий строку lik).*" Этому шаблону соответствует: aflik akjhsdfg, akil, но не соответствует alik

напишите такой шаблон
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 09-08-2006 16:11 » 

/а((?!лик)[^a]*)/

/(а(?!лик)[^a]*)*/
« Последнее редактирование: 09-08-2006 16:13 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алик
Постоялец

kz
Offline Offline

« Ответ #15 : 18-08-2006 06:12 » 

работает!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines