Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 5, 2010 23:10:59

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

Regular expressions

Добрый вечер. Подскажите, пожалуйста, как определить порядок символов в regex? Например, как найти слово, в котором буквы расположены в алфавитном порядке ('art', ‘ivy’), или числа, в которых цифры идут в порядке убывания ('654') или возрастания?
Спасибо заранее.



Офлайн

#2 Дек. 6, 2010 20:05:01

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Regular expressions

Разве буквы в словах ‘art’ и ‘ivy’ идут в алфавитном порядке?
Обязательно ли нужно именно регулярное выражение? Если оно и существует, то, думается мне, оно не такое простое. А вот несложный алгоритм без использования regex написать можно вполне.



Офлайн

#3 Дек. 6, 2010 21:39:18

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

Regular expressions

Isem
Разве буквы в словах ‘art’ и ‘ivy’ идут в алфавитном порядке?
да. http://en.wikipedia.org/wiki/English_alphabet
Isem
Обязательно ли нужно именно регулярное выражение? Если оно и существует, то, думается мне, оно не такое простое. А вот несложный алгоритм без использования regex написать можно вполне.
да. такое задание в универе дали. вообще-то это часть задания, но я с ней как раз и застряла.



Офлайн

#4 Дек. 6, 2010 22:54:03

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Regular expressions

Вот пример для цифр в возрастающем порядке:

re.match("^0*1*2*3*4*5*6*7*8*9*$", <ваша строка>)



Отредактировано (Дек. 6, 2010 22:54:31)

Офлайн

#5 Дек. 7, 2010 14:03:12

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

Regular expressions

Спасибо. Сделала то же самое для алфавита.

pattern=re.compile('\ba*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*\b')
Преподавателю понравится :)



Отредактировано (Дек. 8, 2010 07:39:15)

Офлайн

#6 Дек. 7, 2010 17:34:52

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Regular expressions

Не думаю, что понравится. Напрасно вы убрали ^ и $. Они там были не зря. Смотрите:

In [1]: re.match("^0*1*2*3*4*5*6*7*8*9*$", "153") == None
Out[1]: True

In [2]: re.match("0*1*2*3*4*5*6*7*8*9*", "153")
Out[2]: <_sre.SRE_Match object at 0xb708f368>



Офлайн

#7 Дек. 7, 2010 23:57:03

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

Regular expressions

Ed
Не думаю, что понравится.
У него хорошее чувство юмора, точно понравится :)

Ed
Напрасно вы убрали ^ и $.
да я знаю, просто эта штука http://gskinner.com/RegExr/ учит использовать эти символы осторожно.
'^.+$' выводит не слово а весь текст, а '^+$' не выводит ничего. Я чаще использую \b



Офлайн

#8 Дек. 8, 2010 00:43:14

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Regular expressions

Я чаще использую \b
Ну, глядя на ваш регэксп я бы так не сказал. Или просто не настолько часто, чтобы добавить \b туда :) ?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version