Java Regex pattern.matcher Understanding -


consider following code

import java.util.regex.*;  public static void main(string[] args) {     string str = "suneetha n.=9876543210, pratish patil=9898989898";     pattern pattern = pattern.compile("(\\w+)(\\s\\w+)(=)(\\d{10})");     matcher matcher = pattern.matcher(str);     string newstr = matcher.replaceall("$4:$2,$1");     system.out.println(newstr); } 

output of above code is

suneetha n.=9876543210, 9898989898: patil,pratish    

i not able understand use of matcher.replaceall("$4:$3,$1") , how works , produces output. please provide suggestion on it.

you have

"(\\w+)(\\s\\w+)(=)(\\d{10})"  

regex , imagine create groups founded string. in example

pratish patil=9898989898  

and here groups regex:

(\\w+) => pratish        $1 (\\s\\w+) => patil       $2 (=) => =                 $3 (\\d{10}) => 9898989898  $4 

then said want replaceall regex new ordering $number defined group. replacing

pratish patil=9898989898  

by new group order : , ,.

$4:$2,$1 -> 9898989898:patil,pratish.  

you didnt use $3 group, =.


Comments

Popular posts from this blog

sequelize.js - Sequelize group by with association includes id -

android - Robolectric "INTERNET permission is required" -

java - Android raising EPERM (Operation not permitted) when attempting to send UDP packet after network connection -