Re: search and replace loop example (java.util.regex -> org.apache.regexp)
Kevin Rodgers <[email protected]> Fri, 10 Sep 2004 08:43:55 -0600
| Newsgroups | gmane.comp.jakarta.regexp.user |
|---|---|
| Organization | Information Handling Services, Electronic Systems Development |
| Message-ID | <[email protected]> |
Kevin Rodgers writes:
> The Matcher.appendReplacement method has a great example of how to
> efficiently replace matched text in a loop:
>
> Pattern p = Pattern.compile("cat");
> Matcher m = p.matcher("one cat two cats in the yard");
> StringBuffer sb = new StringBuffer();
> while (m.find()) {
> m.appendReplacement(sb, "dog");
> }
> m.appendTail(sb);
> System.out.println(sb.toString());
>
> (see http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Matcher.html)
>
> What's the corresponding code using the RE class?
Here's what I've come up with:
RE re = new RE("cat");
String s = "one cat two cats in the yard";
StringBuffer sb = new StringBuffer();
int i = 0;
while (re.match(s, i)) {
sb = sb.append(s.subSequence(i, re.getParenStart(0)));
sb = sb.append("dog");
i = re.getParenEnd(0)
}
if (i == 0)
System.out.println(s);
else {
sb = sb.append(s.substring(i));
System.out.println(sb.toString());
}
Comments?
--
Kevin Rodgers