我試圖在兩個給定的參數之間獲取文本。因此,將(和)之間的所有文本置於某個字符串中。有沒有內置函數,還是必須寫我自己的?Eclipse:在兩個給定的標籤之間獲取文本
對於實例 FindBetween(tag1, tag2, StringToSearch)
預先感謝您。
我試圖在兩個給定的參數之間獲取文本。因此,將(和)之間的所有文本置於某個字符串中。有沒有內置函數,還是必須寫我自己的?Eclipse:在兩個給定的標籤之間獲取文本
對於實例 FindBetween(tag1, tag2, StringToSearch)
預先感謝您。
如果你知道TAG2始終遵循TAG1,他們無論是在toSearch存在,你可以使用字符串的方法來解決問題:
public String findBetween(String tag1, String tag2, String toSearch)
{
return toSearch.substring(toSearch.indexOf(tag1) + tag1.length(),
toSearch.indexOf(tag2));
}
希望這有助於!
您可以爲此使用正則表達式。請參閱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
'[^()] *(?= \))'...... –
它可以是您的任務的解決方案。 [鏈接](http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html) –