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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Каких конструкций в регекспах Perl вам не хватает? 
:(
    Опции темы
Suppir
Дата 13.5.2009, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



1) не нравится, как работает оператор s/.../.../
например, выражение s/(а)(б)(в)/$1 $2 $3/ - раставляет пробелы между абв. Но если (б) в строке нет, то, соответственно, на месте $2 находится символ "в". Как-то нелогично. Имно нужно, чтобы если (б) нет, то чтобы и $2 - не было.
.
А какие конструкции вам не нравятся, и что бы вы хотели добавить в регекспы? smile

Это сообщение отредактировал(а) Suppir - 13.5.2009, 16:43
PM MAIL   Вверх
arto
Дата 13.5.2009, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



странное пишете.

# perl -le '$a = "abc"; $a =~ s#(a)(b)©#$1 $2 $3#; print $a; $a = "ac"; $a =~ s#(a)(b)©#$1 $2 $3#; print $a'
a b c
ac
#
PM MAIL ICQ   Вверх
Suppir
Дата 13.5.2009, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



хм, точно. Наверное, что-то перепутал с примером (дома разберу, точно была проблема с обратныи ссылками)
.
Второй вопрос все же интересует:
А какие конструкции вам не нравятся, и что бы вы хотели добавить в регекспы? smile
PM MAIL   Вверх
Logo
Дата 14.5.2009, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 5
Всего: 10



Лично мне пригодились бы подобные конструкции, чтобы довели до ума перегрузку, ну и не помешала бы конструкция, что бы искать числа/диапазоны чисел.
PM MAIL   Вверх
sir_nuf_nuf
Дата 14.5.2009, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ага, диапазоны чисел пожалуй круто будет.. я бы еще предложил возоможность вставки предикатов на perl в регулярки
... что бы например поиск числа < 515 выглядел так
Код

/(\d{1,3})(?*****{ $1 < 515 })/


Внимание: это невалидный код, всего лишь пожелание.


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
arto
Дата 14.5.2009, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



\b(?:[0-4]\d\d|50\d|51[0-5]|\d?\d)\b, не оно?
PM MAIL ICQ   Вверх
Suppir
Дата 14.5.2009, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Модификатор нечеткого поиска? Например, строка ABCD, 
регулярка /(?1:ABBD)/ - вроде "одна любая буква может не совпадать". 


PM MAIL   Вверх
arto
Дата 14.5.2009, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



(?:.BBD|A.BD|AB.D|ABB.) ?
PM MAIL ICQ   Вверх
sir_nuf_nuf
Дата 14.5.2009, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(arto @  14.5.2009,  17:51 Найти цитируемый пост)
\b(?:[0-4]\d\d|50\d|51[0-5]|\d?\d)\b, не оно? 

Оно. но оно вам самим нравится ?  Хотя это классика..

Вообщем что бы вот таких конструкиций не писать я и хотел перловые предикаты.



--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Suppir
Дата 14.5.2009, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



arto, ну а если "5 букв могут не совпадать"? Перебирать все варианты в регулярном выражении очень сложно (и длинно). Было бы удобней, если такая фича на уровне механизма присутствовала. Конечно, поиск с таким модификатором будет медленный. И еще будет несколько ответов разной релевантности.
.
Еще вариант:
/<я> <люблю> <Perl>/
Хочу чтобы для слова в угловых скобках работали любые синонимы, с любыми окончаниями. Представляете как будет удобно? 
PM MAIL   Вверх
arto
Дата 14.5.2009, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



/<make me happy>/ && exit;
PM MAIL ICQ   Вверх
sir_nuf_nuf
Дата 14.5.2009, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



/make arto happy/ or die 'trying =)' ;


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
KSURi
Дата 15.5.2009, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Suppir @  14.5.2009,  18:51 Найти цитируемый пост)
Хочу чтобы для слова в угловых скобках работали любые синонимы, с любыми окончаниями. Представляете как будет удобно?  

А еще чтобы они кофе умели готовить ;)


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
shamber
Дата 15.5.2009, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(KSURi @  15.5.2009,  10:26 Найти цитируемый пост)
А еще чтобы они кофе умели готовить ;) 
 
smile  заведите жену, она мнооого что умеет делать. Ее просто иногда нужно кормить smile

Это сообщение отредактировал(а) shamber - 15.5.2009, 10:30
PM MAIL Jabber   Вверх
Suppir
Дата 15.5.2009, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну а что там сложного в синонимах?
допустим слово "кошка" можно представить в современном синтаксисе как $cat='ко(шка|т|тенок)';
m/$cat/;
 и т.п.  smile

Добавлено через 1 минуту и 42 секунды
Только сделать обращение к библиотеке синонимов не через переменную, а на уровне синтаксиса. Библиотеку распространять модулем. Наверное, что-то подобное есть уже

Добавлено через 3 минуты и 42 секунды
<кошка>  - синонимы
<?!кошка> - антонимы
<!кошка> - синонимы кроме самого слова "кошка"

PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




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


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

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