Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » регулярное выражение - всё кроме слова

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

yurinb



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А всетаки (теоретически) как в регулярном выражении можно написать "все кроме строки из нескольких знаков"?
Например надо найти все строки кроме теж которые содержат слово "word".

Всего записей: 341 | Зарегистр. 06-05-2002 | Отправлено: 11:11 28-01-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уточни, для какого языка программирования это нужно. В SQL, например, это будет NOT LIKE '%word%'

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 16:30 28-01-2006
yurinb



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
язык тут не причем регулярные выражения - regexp реализованы во многих языках программирования. sql тут вообще не причем. скорее речь идет о функциях php - ereg, eregi ; perl - preg_match или System.Text.RegularExpressions из dotnet framework.

Всего записей: 341 | Зарегистр. 06-05-2002 | Отправлено: 00:39 29-01-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yurinb

Цитата:
язык тут не причем регулярные выражения  

еще как при чем.. хоть и реализованы, но есть, все же, ньюансы в разных языках
[^word]

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:42 29-01-2006
rpns

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yurinb

Цитата:
Например надо найти все строки кроме теж которые содержат слово "word".

Для "теоретичности" ограничимся пустой строкой, операциями |, * и конкатенацией. Считая алфавит S = {a, ..., z} конечным, допустим производные от них сокращения:  +, ?, [ ], [^ ], {N, M}, {N}, {N, }, где - N и M - конечные.
Обозначим:
A := [^w]*
B := w[^o]
C := wo[^r]
D := wor[^d]
E := (((A | B) | C) | D )*
Почему бы выражению (после подстановки значений метаконстант) ниже не быть искомым?
(((Ew | Ewo) | Ewor) | E)

Всего записей: 58 | Зарегистр. 29-08-2005 | Отправлено: 02:30 29-01-2006
yurinb



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
[^word]

и это [^word] выкинет любые строки, в которых есть одна из букв 'w' или 'o' или 'r' или 'd'
тоесть не только word но и слово red например, которое на word совсем не похоже.

Всего записей: 341 | Зарегистр. 06-05-2002 | Отправлено: 11:42 29-01-2006 | Исправлено: yurinb, 11:43 29-01-2006
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
(?!pattern)
Zero-width negative lookahead. Identical to positive lookahead, except that the overall match will only succeed if the regex inside the lookahead fails to match.
 

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 17:23 29-01-2006 | Исправлено: vndovr, 17:23 29-01-2006
sikemo

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[^(word)]

Всего записей: 1326 | Зарегистр. 27-11-2008 | Отправлено: 18:58 04-02-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » регулярное выражение - всё кроме слова


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru