2015-06-27 127 views
0

我試圖在兩個給定的參數之間獲取文本。因此,將(和)之間的所有文本置於某個字符串中。有沒有內置函數,還是必須寫我自己的?Eclipse:在兩個給定的標籤之間獲取文本

對於實例 FindBetween(tag1, tag2, StringToSearch)

預先感謝您。

+1

'[^()] *(?= \))'...... –

+0

它可以是您的任務的解決方案。 [鏈接](http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html) –

回答

0

如果你知道TAG2始終遵循TAG1,他們無論是在toSearch存在,你可以使用字符串的方法來解決問題:

public String findBetween(String tag1, String tag2, String toSearch) 
{ 
    return toSearch.substring(toSearch.indexOf(tag1) + tag1.length(), 
           toSearch.indexOf(tag2)); 
} 
  • 子(BEG,end)返回的PA從索引toSearch的室溫謹此 一個字符索引端
  • 之前找到字符串(TAG1)的索引內toSearch返回 索引字符串的第一個字符的,以便將所述字符串的長度 會給你第一個字符的索引 之後它

希望這有助於!

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

相關問題