Sto eseguendo un test per trovare e sostituire una stringa di 3 o 4 lettere maiuscole seguita da un numero con la stessa stringa, un trattino e lo stesso numero. In Perl, posso usare:Inserimento di un trattino tra i gruppi con un problema di regex Java
s/([A-Z]{3,4})([0-9])/$1-$2/g;
Ho provato questo in Java, hardcoding una stringa del tipo:
public class Test {
public static void main(String[] args) {
String test = "TEST1";
Pattern p = Pattern.compile("([A-Z]{3,4})([0-9])");
Matcher m = p.matcher(test);
if (m.find()) {
m.replaceAll(m.group(1) + "-" + m.group(2));
}
System.out.println(test);
}
}
Ma viene trovata una corrispondenza. La sintassi di Java è errata o si tratta di un problema di espressioni regolari?
replaceAll restituisce una nuova stringa dei vostri sostituzioni – beresfordt
Se c'è un metodo all'interno della classe Matcher chiamato 'replaceAll()', qual è il suo prototipo? – sln
Si prega di non aggiungere "RISOLTO" alla domanda. – Turing85