Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Помогите составить регулярку, RegExp (https://forum.antichat.xyz/showthread.php?t=141882)

geograph 16.09.2009 23:47

Помогите составить регулярку, RegExp
 
Господа, помогите составить регулярное выражение. Нужно в тексте найти строку, длинной 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
вот


Время: 13:12