Модераторы: ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Составить рег выражение 
:(
    Опции темы
Egik2
Дата 25.11.2008, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 29.7.2008
Где: Агудзера

Репутация: нет
Всего: 11



Добрый день!!!
Необходимо составить рег выражение, которое истинно, для 
тех строк, которые не начинаются на 172 или 127.
Понимаю, как составить для строк которые начинаются на эти цифры:
/^(172|127)/, а наоборот как?


--------------------
Три великие добродетели программиста: лень, нетерпение и самомнение (Larry Wall)
a-nav.com
developer-blog.ru
world-poetry.org
PM MAIL WWW ICQ   Вверх
ginnie
Дата 25.11.2008, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 1
Всего: 49



Egik2, предлагаю два варианта

1. /^(?!127|172)/

2. $value !~ /^(172|127)/


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
Egik2
Дата 25.11.2008, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 29.7.2008
Где: Агудзера

Репутация: нет
Всего: 11



А если я хочу это выражение использовать в grep, то 1 вариант не работает, а второй даже не знаю, как приспособить smile
Работает следующим образом, но это совсем криво
grep -E '^1[^7][^2]' access_log

Добавлено через 1 минуту и 4 секунды
А вообще не то написал, так я отсеиваю только 172


--------------------
Три великие добродетели программиста: лень, нетерпение и самомнение (Larry Wall)
a-nav.com
developer-blog.ru
world-poetry.org
PM MAIL WWW ICQ   Вверх
amg
Дата 25.11.2008, 13:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: нет
Всего: 50



Цитата(Egik2 @  25.11.2008,  12:49 Найти цитируемый пост)
А если я хочу это выражение использовать в grep
grep -Ev '^(127|172)' access_log

И вместо grep (а также sed и многих др. unixutils) можно успешно использовать perl: он отлично приспособлен для выполнения коротких и вместе с тем очень гибких "программ"
perl -ne '/^(172|127)/ || print' access_log
perl -ne '/^(?!127|172)/ && print' access_log

Это сообщение отредактировал(а) amg - 25.11.2008, 14:26
PM MAIL   Вверх
tolkien
Дата 27.11.2008, 05:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 5.4.2008

Репутация: нет
Всего: 4



Код

!/^(172|127)/


Это сообщение отредактировал(а) tolkien - 27.11.2008, 05:13
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




[ Время генерации скрипта: 0.0537 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.