Опитвам се да създам спам филтър с помощта на регулярни изрази, който съответства на следната ситуация.
- Има група от точно 8 буквено-цифрови знака, които трябва да бъдат съпоставени.
- Трябва да съдържа 2 или повече главни букви;
- И трябва да съдържа 2 или повече малки букви;
- И трябва да съдържа 1 или повече числа.
Досега всичко, което успях да измисля, е следното:
(?i)[A-Za-z0-9]{8}
Моят код съвпада със смесена група от 8 букви, но не налага главни или малки букви или указва колко пъти трябва да се появи всеки тип. Така че го комбинирам с други задължителни неща, които винаги присъстват във въпросните съобщения.
Ето пример от модела, който се опитвам да открия:
WbNDSk9e
Това е част от спам URL. Други групи, които съм виждал, следват същия модел от поне 2 букви UC и LC и 1 или повече цифри и винаги имат точно 8 знака. Все още не съм виждал други герои или вариации.
Доколкото знам, единственият превключвател, който мога да използвам, е да включа чувствителността към малки и главни букви с (?i). Някои от другите ключове, които видях в някои отговори, не работят в програмата, която използвам. Искам ли твърде много от едноредовото правило RegExpr?
В момента използвам RegEx Match, за да тествам правилата си и моята анти-спам програма използва същия двигател.