使用 Java - substringBetween() 函数根据第二次出现提取子字符串

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

我有以下字符串 "If this is good and if that is bad"。要求是从主字符串中提取字符串"that"。

使用

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

在这种情况下,您能否帮助提取所需的字符串。如果使用函数 substringBetween() 无法做到这一点,是否有其他字符串函数可以实现此目的?

你的意思是 StringUtils.substringBetween(foo, "if", "is") 而不是 StringUtils.substringBetween(foo, "If", "is")因为方法substringBetween是区分大小写的操作

并且在 "If" 和 "is" 之间搜索与在 "if" 和 "is"

之间搜索的结果不同
String foo = "If this is good and if that is bad";
String bar = StringUtils.substringBetween(foo, "if", "is");
// String bar = StringUtils.substringBetween(foo, "If", "is");
System.out.println(bar);

可以使用regexPattern匹配来提取,例如:

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());
}