import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test {
public static void main(String[] args) {
String a ="12341234";
String regex="^(\\d+?)\\1$";
Pattern p=Pattern.compile(regex);
Matcher matcher = p.matcher(a);
while(matcher.find()) {
System.out.println(matcher.group(1));
}
}
}
Utilizzando il Matcher e la regex di cui sopra, ottengo qualsiasi ripetizione. Tuttavia, voglio solo ripetizioni di taglia 2 o superiore. Quando ho provato a fare la regex diCome si usa un'espressione regolare per trovare una ripetizione consecutiva in una stringa (ad esempio [12] [12]) ma solo di lunghezza 2 o maggiore?
^(\\d+?){2,100}\\1$
, nulla è stato restituito quando ho eseguito il programma, anche se ci fosse una ripetizione tra la lunghezza 2 e 100. Che cosa sto facendo di sbagliato?
Mai dire mai, ma non sono così sicuro che questo è il tipo di problema che i Regex sono progettati per risolvere. Nel frattempo, risolvere questo proceduralmente è banale ... – nasukkin