I have a simple regex which throws: [java.lang.IllegalArgumentException] Illegal group reference.
The code is simple but I cannot figure out why. I have put String Y in the second post to make it more readable (it contains some XML).
Exception in thread "main" java.lang.IllegalArgumentException: Illegal group reference at java.util.regex.Matcher.appendReplacement(Matcher.java:561) at java.util.regex.Matcher.replaceAll(Matcher.java:661) at java.lang.String.replaceAll(String.java:1663) at ReplaceTest.main(ReplaceTest.java:13)
[ March 24, 2005: Message edited by: Kashif Riaz ]
This is just a wild guess: the replacement string can contain group references using the syntax $1, $2, $3... to substitute the 1st, 2nd, 3rd captured group. Dollar signs have to be escaped to be included literally.
You don't have any dollar signs, but you do have a tag "<settcurr>�!</settcurr>". I wonder if any currency symbol can be used in place of "$"? If so, then perhaps "�!" is a currency symbol (it doesn't render correctly in my browser, so I don't know what it is), and so you've got the invalid captured group reference "�!<". You can try escaping the currency symbol by inserting "\\" into the String right before it.