我正在尝试在两个给定参数之间获取文本。因此,在某个字符串中获取(和)之间的所有文本。有内置功能还是我必须自己编写?
For Instance
FindBetween(tag1, tag2, StringToSearch)
提前谢谢。
答案 0 :(得分:0)
您可以使用正则表达式。请参阅Pattern和Matcher。
这是我做的一个例子:
public static List<String> findBetween(String tag1, String tag2, String toSearch) throws IllegalStateException {
Pattern pattern = Pattern.compile(String.format(
"%s(.*?)%s",
// use quote in case tag1/tag2 are special regex characters.
Pattern.quote(tag1),
Pattern.quote(tag2)
));
List<String> matches = new ArrayList<>();
Matcher matcher = pattern.matcher(toSearch);
while (matcher.find()){
matches.add(matcher.group(1));
}
return matches;
}
您可以在此处查看:https://ideone.com/NMke7L
答案 1 :(得分:0)
如果您知道tag2始终遵循tag1并且它们都存在于toSearch中,您可以使用String方法来解决您的问题:
public String findBetween(String tag1, String tag2, String toSearch)
{
return toSearch.substring(toSearch.indexOf(tag1) + tag1.length(),
toSearch.indexOf(tag2));
}
希望这有帮助!