Eclipse:在两个给定标记之间获取文本

时间:2015-06-27 06:48:01

标签: java eclipse string

我正在尝试在两个给定参数之间获取文本。因此,在某个字符串中获取(和)之间的所有文本。有内置功能还是我必须自己编写?

For Instance FindBetween(tag1, tag2, StringToSearch)

提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用正则表达式。请参阅PatternMatcher

这是我做的一个例子:

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));
}
  • substring(beg,end)从索引求回toSearch的部分 索引结束前的一个字符
  • 在toSearch中查找String(tag1)的索引返回 该字符串的第一个字符的索引,所以添加长度 String的字符串将为您提供第一个字符的索引 跟着它

希望这有帮助!