Problem mit replaceAll

BaseBallBatBoy

Erfahrenes Mitglied
Hi

Ich hab ein Problem mit replaceAll. Ich will ein pattern im Text per regex durch einen Link ersetzen. Nur dummerweise erhalte ich eine IndexOutOfBoundsException und ich seh nicht was ich falsch mache. Anbei der Code und die Fehlermeldung.

Java:
String text = "asdf asdf asdf SCS1234asdf asdf asdf";
String regex= "SCS\\d{3,7}|SKS\\d{2,4}";
String htmlReadyText = text.replaceAll(regex, "<a href=\"http://e-support\\.abc\\.com/reader_iview/ui/myserver.asp\\?id=$1\">$1</a>");

Java:
java.lang.IndexOutOfBoundsException: No group 1
	at java.util.regex.Matcher.group(Unknown Source)
	at java.util.regex.Matcher.appendReplacement(Unknown Source)
	at java.util.regex.Matcher.replaceAll(Unknown Source)
	at java.lang.String.replaceAll(Unknown Source)
        ...

Gruss
BBBB
 
Hi,

Du musst dein Pattern noch in Gruppen aufteilen, in dem Du die Ausdrücke klammerst, z.B. so:

Code:
String regex= "(SCS\\d{3,7}|SKS\\d{2,4})";

Gruß twagi
 

Neue Beiträge

Zurück