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