javastringapache-commonsapache-stringutilsapache-commons-lang

Extracting a substring based on second occurence using Java - substringBetween() function


I have the following string "If this is good and if that is bad". The requirement is to extract the string "that" from the main string.

Using

substringBetween(mainString, "If", "is") returns the string "this".

Could you please help in extracting the required string in this case. If this is not possible using the function substringBetween(), is there any alternative string function to achieve this?


Solution

  • You can use regex and Pattern matching to extract it, e.g.:

    String s = "If this is good and if that is bad";
    Pattern pattern = Pattern.compile("if(.*?)is");
    Matcher m = pattern.matcher(s);
    if(m.find()){
        System.out.println(m.group(1).trim());
    }