Questa espressione corrisponderà uno o più gruppi di ripetizione:
(.+)(?=\1+)
Ecco la stessa espressione analizzata, (utilizzando commenti in modo che possa essere ancora utilizzata direttamente come espressione regolare).
(?x) # enable regex comment mode
( # start capturing group
.+ # one or more of any character (excludes newlines by default)
) # end capturing group
(?= # begin lookahead
\1+ # match one or more of the first capturing group
) # end lookahead
per abbinare un modello specifico, modificare la .+
al sistema scelto, per esempio \d+
per uno o più numeri o \d{4,}
per abbinare 4 o più numeri.
Per abbinare un numero specifico del motivo, modificare \1+
, ad esempio \1{4}
per quattro ripetizioni.
Per consentire la ripetizione di non essere uno accanto all'altro, è possibile aggiungere .*?
all'interno del lookahead.
fonte
2009-06-03 10:00:29
Che lingua/piattaforma stai usando? –
Sto usando C#. Tutto quello di cui avevo bisogno era la regex, quindi ho implementato la soluzione di RichieHindle e l'ho già verificata rispetto ai miei dati di test! Ho anche imparato molto dall'espressione regolare di Peter Boughton. Grazie a tutti e due! –
@MarkWithers Mi sto occupando dello stesso problema. Puoi per favore essere più concreto e dirmi qualcosa di più sulla tua soluzione? Grazie – user2179427