Форум сайта python.su
Добрый вечер. Подскажите, пожалуйста, как определить порядок символов в regex? Например, как найти слово, в котором буквы расположены в алфавитном порядке ('art', ‘ivy’), или числа, в которых цифры идут в порядке убывания ('654') или возрастания?
Спасибо заранее.
Офлайн
Разве буквы в словах ‘art’ и ‘ivy’ идут в алфавитном порядке?
Обязательно ли нужно именно регулярное выражение? Если оно и существует, то, думается мне, оно не такое простое. А вот несложный алгоритм без использования regex написать можно вполне.
Офлайн
Isemда. http://en.wikipedia.org/wiki/English_alphabet
Разве буквы в словах ‘art’ и ‘ivy’ идут в алфавитном порядке?
Isemда. такое задание в универе дали. вообще-то это часть задания, но я с ней как раз и застряла.
Обязательно ли нужно именно регулярное выражение? Если оно и существует, то, думается мне, оно не такое простое. А вот несложный алгоритм без использования regex написать можно вполне.
Офлайн
Вот пример для цифр в возрастающем порядке:
re.match("^0*1*2*3*4*5*6*7*8*9*$", <ваша строка>)
Отредактировано (Дек. 6, 2010 22:54:31)
Офлайн
Спасибо. Сделала то же самое для алфавита.
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)
Офлайн
Не думаю, что понравится. Напрасно вы убрали ^ и $. Они там были не зря. Смотрите:
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>
Офлайн
EdУ него хорошее чувство юмора, точно понравится :)
Не думаю, что понравится.
Edда я знаю, просто эта штука http://gskinner.com/RegExr/ учит использовать эти символы осторожно.
Напрасно вы убрали ^ и $.
Офлайн
Я чаще использую \bНу, глядя на ваш регэксп я бы так не сказал. Или просто не настолько часто, чтобы добавить \b туда :) ?
Офлайн