Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #38095

Re: regex replaceAll?

Newsgroups comp.lang.java.programmer
Date 2018-03-01 13:52 -0800
References <4a800440-39fe-4684-8369-e6a4e6b9d79f@googlegroups.com> <p79ka7$enj$1@dont-email.me>
Message-ID <071d7ec0-3a09-42e1-a4c7-2a99331a65c9@googlegroups.com> (permalink)
Subject Re: regex replaceAll?
From Eric Douglas <e.d.programmer@gmail.com>

Show all headers | View raw


On Thursday, March 1, 2018 at 2:29:24 PM UTC-5, Daniele Futtorovic wrote:
> > Now I'm trying to replace the nth occurrence of a string.
> 
> ^This?
> 
> Here's one way:
>     public static CharSequence replaceEveryNthOccurrenceOf(
>         CharSequence input, String match, int nthMatch, String replaceWith
>     )
>     {
>         if( nthMatch <= 0 ){
>             throw new IllegalArgumentException("nthMatch must be positive");
>         }
> 
>         Pattern p = Pattern.compile( match );
>         Matcher m = p.matcher( input );
>         StringBuffer sb = new StringBuffer();
>         boolean found = true;
>         do {
>             for( int ii = nthMatch; ii --> 0 && (found = m.find()); ){
>                 m.appendReplacement( sb, ii == 0 ? replaceWith : "$0" );
>             }
>         }
>         while( found );
> 
>         m.appendTail( sb );
> 
>         return sb;
>     }

That is the long way, to be re-usable I have to put that in a custom method to call, not sure why I can't get this to work with the single replaceAll statement but this is the logic I'm looking for.

"abc aa bb cc a bb ccc   a b c abc aa bbb cc babacaca"
search for "b", replace every 2nd with "_" results in
"abc aa _b cc a _b ccc   a _ c abc aa _b_ cc ba_acaca"

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

regex replaceAll? Eric Douglas <e.d.programmer@gmail.com> - 2018-03-01 06:19 -0800
  Re: regex replaceAll? Andreas Leitgeb <avl@logic.at> - 2018-03-01 19:03 +0000
    Re: regex replaceAll? Eric Douglas <e.d.programmer@gmail.com> - 2018-03-01 12:15 -0800
      Re: regex replaceAll? Daniele Futtorovic <da.futt.news@laposte.net> - 2018-03-01 21:51 +0100
        Re: regex replaceAll? Eric Douglas <e.d.programmer@gmail.com> - 2018-03-01 13:36 -0800
          Re: regex replaceAll? Arne Vajhøj <arne@vajhoej.dk> - 2018-03-01 16:59 -0500
      Re: regex replaceAll? Andreas Leitgeb <avl@logic.at> - 2018-03-01 21:55 +0000
        Re: regex replaceAll? Eric Douglas <e.d.programmer@gmail.com> - 2018-03-01 14:00 -0800
          Re: regex replaceAll? Andreas Leitgeb <avl@logic.at> - 2018-03-01 22:31 +0000
            Re: regex replaceAll? Arne Vajhøj <arne@vajhoej.dk> - 2018-03-01 17:52 -0500
              Re: regex replaceAll? Andreas Leitgeb <avl@logic.at> - 2018-03-02 00:14 +0000
            Re: regex replaceAll? Kiwi User <martin@mydomain.invalid> - 2018-03-02 00:43 +0000
              Re: regex replaceAll? Arne Vajhøj <arne@vajhoej.dk> - 2018-03-01 19:49 -0500
                Re: regex replaceAll? Kiwi User <martin@mydomain.invalid> - 2018-03-02 01:33 +0000
                Re: regex replaceAll? Arne Vajhøj <arne@vajhoej.dk> - 2018-03-02 13:00 -0500
                Re: regex replaceAll? Kiwi User <martin@mydomain.invalid> - 2018-03-03 20:07 +0000
            Re: regex replaceAll? Eric Douglas <e.d.programmer@gmail.com> - 2018-03-02 05:40 -0800
              Re: regex replaceAll? Andreas Leitgeb <avl@logic.at> - 2018-03-02 17:46 +0000
                Re: regex replaceAll? Eric Douglas <e.d.programmer@gmail.com> - 2018-03-02 10:38 -0800
                Re: regex replaceAll? Andreas Leitgeb <avl@logic.at> - 2018-03-02 20:15 +0000
                Re: regex replaceAll? Eric Douglas <e.d.programmer@gmail.com> - 2018-03-02 12:43 -0800
                Re: regex replaceAll? Eric Douglas <e.d.programmer@gmail.com> - 2018-03-02 12:58 -0800
                Re: regex replaceAll? Daniele Futtorovic <da.futt.news@laposte.net> - 2018-03-03 00:06 +0100
  Re: regex replaceAll? Daniele Futtorovic <da.futt.news@laposte.net> - 2018-03-01 20:29 +0100
    Re: regex replaceAll? Daniele Futtorovic <da.futt.news@laposte.net> - 2018-03-01 20:30 +0100
    Re: regex replaceAll? Eric Douglas <e.d.programmer@gmail.com> - 2018-03-01 12:28 -0800
      Re: regex replaceAll? Daniele Futtorovic <da.futt.news@laposte.net> - 2018-03-01 21:40 +0100
    Re: regex replaceAll? Eric Douglas <e.d.programmer@gmail.com> - 2018-03-01 13:52 -0800
      Re: regex replaceAll? Daniele Futtorovic <da.futt.news@laposte.net> - 2018-03-02 02:25 +0100

csiph-web