Ciao, 2011/1/19 Marco Ciampa <ciampix@xxxxxxxxx>: > Domanda che mi hanno posto sulle espressioni regolari > per il perlisti (mi sembra esagerato chiedere a Larry W. :-) > > Come implementare un'espressione regolare che cerca una combinazione di n > cifre ma non ripetitiva? Mi pare che tu stia cercando le possibili permutazioni di una stinga. In tal caso è difficile rispondere, dato che una permutazione non è un'operazione "regolare" (infatti, come noti, devi scartare diversi risultati da una espressione regolare per ottenere quello che vuoi). A naso mi viene da dire che non si può fare molto meglio di una cosa tipo 1(23) | 2(13) | 3(12) che diventa 4(1(23) | 2(13) | 3(12)) | ... | 1(2(34) | (3(24) | 4(23)) per il caso di 4 caratteri. Però se hai bisogno di permutare stringhe più lunghe, dubito che le espressioni regolari possano aiutarti, meglio usare altri strumenti. Sempre a naso, crei una regex della stringa base, generi tutte le combinazioni e verifichi quelle che ti servono con un sorting ed un match con la stringa base. In soldoni, tra tutte le stringhe generate da [123]{3}, volendo scartare i vari 122, 133, ... , 322, 311, fai un sorting (da cui ottieni 122, 133, ..., 223, 113) e matchi con la stinga generatrice. E... sì, mi pare abbastanza contorto, ma non mi è venuto in mente niente di meglio... HTH, Stefano -- Stefano David -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx