El 17/1/24 a les 16:10, julio ha escrit:
Suposant que el que es cerca són números de N dígits i que els patrons de cerca son igualment de N caràcters i no fan servir repeticions (o sigui, que troben o bé un caràcter específic o bé qualsevol), existeixen 2^N patrons que coincideixen amb un número de N dígits. Amb N=9 són 512 patrons compatibles.El 17 de gener de 2024 8:39:26 CET, Narcis Garcia <debianlists@actiu.net> ha escrit:Bones, Tinc un fitxer de text, com podria ser per exemple una llista de números de telèfon (coneguts.txt): 972123456 972111133 972111134 972111135 972111136 972789012 però m'agradaria representar-hi rangs compatibles (expressions regulars) per abreviar: 972123456 9721111.. 972789012Com no estem acotant amb ^ ni amb $ 9 7 2 . etcètera 97 72 21 9. .9 etc 972 97. 9.2 I això sense fent servir només dígits i el caràcter . no literal. Sembla un problema matemàtic de combinatòria :) O probablement no ho he entès. Vagi bé.
Si a més del . (qualsevol dígit) vols també poder indicar rangs de dígits [0-9], per a cada posició tens 10 rangs possibles, incloent el [0-9] equivalent al . i el [d-d] equivalent al dígit específic (en general, tindries el rang [k-d] (o [d-k] si k>d) per k=0..9 i d fixat). En aquest cas, són 10^N els possibles patrons que pot complir un nombre de N dígits, que ja són 100 milions per N=9.
Si acceptes patrons amb un subconjunt arbitrari de dígits per a cada posició (posem per cas, els senars), crec que tindries sum(k=1..10, 10!/((10-k)!·k!)) (tinc la combinatòria molt rovellada), que és una burrada que després encara s'haurà d'elevar a la novena potència.
De tots aquests possibles patrons, quin seria el que esperaries com a resultat correcte?