Java regex using pattern matcher not returning correctly? -


i have index value following string:

home.number[12].parent.  

i want value of 12.

here tried:

//escape . / [ ]  private static final string pattern = "home\\.number\\[([0-9]*)\\]*";  private static final pattern addresspattern = pattern.compile(pattern);     private static int getindex(string input, pattern pattern){          matcher m = pattern.matcher(input);         if (m.matches()){         return integer.valueof(m.group(2));         }         return -1;     }      public static void main(string[] args){      system.out.println(getindex("home.number[123].parent", addresspattern);     system.out.println(getindex("home.number[456].child", addresspattern);    } 

i -1 both, meaning no match found.

using debugger, found m.matches() returning false. unable figure out why.

p.s: tried using pattern.quote("home.number[([0-9]*])*") , stringutils.escapejava("home.number[([0-9]*)]*"). both not returning matching results.

your pattern should like

private static final string pattern = "home\\.number\\[(\\d+)\\]\\..*"; private static final pattern addresspattern = pattern.compile(pattern); 

and matcher has 1 group.

private static int getindex(string input, pattern pattern) {     matcher m = pattern.matcher(input);     if (m.matches()) {         return integer.parseint(m.group(1));     }     return -1; } 

and need close second paren in calls in main. like

public static void main(string[] args) {     system.out.println(getindex("home.number[123].parent", addresspattern));     system.out.println(getindex("home.number[456].child", addresspattern)); } 

when make changes expected

123 456 

Comments

Popular posts from this blog

python - No exponential form of the z-axis in matplotlib-3D-plots -

php - Best Light server (Linux + Web server + Database) for Raspberry Pi -

c# - "Newtonsoft.Json.JsonSerializationException unable to find constructor to use for types" error when deserializing class -