PDA

Просмотр полной версии : Помогите составить регулярку, RegExp


geograph
16.09.2009, 23:47
Господа, помогите составить регулярное выражение. Нужно в тексте найти строку, длинной 8-9 символов, содержащую маленькие латинские буквы и цифры. Но, строка обязательно должна содержать и буквы, и цифры, т.е. если строка будет полностью из букв, то она не подходит.
Написал такую регулярку, надо подправить, чтобы подходила по условиям обозначенным выше:
[a-z0-9]{8,9}

Juda
17.09.2009, 04:32
А в каком языке тебе нужен регуляр? тебе нужно пароль проверять?

geograph
17.09.2009, 08:14
На дельфи пишу, использую TRegExpr, нет не пароль, просто такую строку (типа хэша) нужно выделить из остального текста

d_x
17.09.2009, 11:40
Небольшая идея, возможно, поможет:

/(([a-z]+)|([0-9]+))(?(-1)[a-z]+|[0-9]+)[a-z0-9]*/

Эта регулярка в стиле PCRE, отыщет строки, состоящие обязательно и из букв, и из цифр, правда длину 8-9 символов не учитывает.

Fliplab
17.09.2009, 20:37
geograph ты почти всё правильно сделал, но не совсем) Тебе надо вот так [a-zA-Z0-9]{8,9}? . Если будут вопросы читай тут http://www.regular-expressions.info/reference.html

desTiny
18.09.2009, 20:25
чёрт, интересная задачка :)
Fliplab, неа. 1)по усл-ю маленькие буквы
2) под эту подхоят чистобуквенные/чистоцифровые

Мне (хотя я не очень близко ружу с регекспом) приходит в голову только идея вида
[0-9][a-z][a-z0-9]{6,7} | [a-z][0-9][a-z0-9]{6,7} | ...
и дохрена дальше. но наверно в синтаксисе регекспа что-то более простое есть

Ra$cal
18.09.2009, 21:08
([a-z]+[0-9]+){8,9}

скорее типа такого

от тыж =\ не проканает. это прокатит для сначала букв потом цифр... занятно занятно...

desTiny
18.09.2009, 21:17
(...){8, 9} разве не означает, что скобка повторится 8-9 раз? тогда у тебя много раз по неотрицательному числу символов

Ra$cal
21.09.2009, 23:21
\b(?![a-z]{8,9})[0-9a-zA-Z]{8,9}\b
вот