Musím (bohužiaľ, musí to urobiť na úrovni databázy - vlastne MariaDB), aby som overil pomocou čísel regulárnych výrazov pomocou pravidla, že toto číslo musí pozostávať z najmenej 4 jedinečných číslic.
Príklady toho, čo musím dosiahnuť:
112233441122 je v poriadku (vyrobené iba od 1,2,3,4) 1234564222134 je v poriadku (6 rôznych číslic) 122102111 je nesprávny (iba 3 číslice: 0,1,2) 91511201 je v poriadku (5 číslic)
Rád by som sa podelil o svoje pokusy, ale nie som dobrýpráve teraz so spätnými odkazmi, a žiadny z mojich maličkých pokusov sa ešte viac priblížil slovu zloženému z dvoch rôznych postáv. Tiež som vyskúšal funkcie definované používateľom, ktoré počítajú znaky v reťazci, ale sú pomalé a nie také elegantné, ako pri používaní REGEX.
odpovede:
8 pre odpoveď č. 1Za predpokladu, že používate regulárny motor, ktorý podporuje spätné odkazy a vlastnoručné párovanie, môžete použiť:
^(d)1*+(d)(?:1|2)*+(d)(?:1|2|3)*+d+$
To isté sa dá urobiť pomocou atómových skupín:
^(d)(?>1*)(d)(?>(?:1|2)*)(d)(?>(?:1|2|3)*)d+$