Extract sub-string between two certain words using regex in java

后端 未结 3 1897
囚心锁ツ
囚心锁ツ 2020-12-30 09:59

I would like to extract sub-string between certain two words using java.

For example:

This is an important example about regex for my work.
         


        
3条回答
  •  爱一瞬间的悲伤
    2020-12-30 10:38

    public class SubStringBetween {

    public static String subStringBetween(String sentence, String before, String after) {
    
        int startSub = SubStringBetween.subStringStartIndex(sentence, before);
        int stopSub = SubStringBetween.subStringEndIndex(sentence, after);
    
        String newWord = sentence.substring(startSub, stopSub);
        return newWord;
    }
    
    public static int subStringStartIndex(String sentence, String delimiterBeforeWord) {
    
        int startIndex = 0;
        String newWord = "";
        int x = 0, y = 0;
    
        for (int i = 0; i < sentence.length(); i++) {
            newWord = "";
    
            if (sentence.charAt(i) == delimiterBeforeWord.charAt(0)) {
                startIndex = i;
                for (int j = 0; j < delimiterBeforeWord.length(); j++) {
                    try {
                        if (sentence.charAt(startIndex) == delimiterBeforeWord.charAt(j)) {
                            newWord = newWord + sentence.charAt(startIndex);
                        }
                        startIndex++;
                    } catch (Exception e) {
                    }
    
                }
                if (newWord.equals(delimiterBeforeWord)) {
                    x = startIndex;
                }
            }
        }
        return x;
    }
    
    public static int subStringEndIndex(String sentence, String delimiterAfterWord) {
    
        int startIndex = 0;
        String newWord = "";
        int x = 0;
    
        for (int i = 0; i < sentence.length(); i++) {
            newWord = "";
    
            if (sentence.charAt(i) == delimiterAfterWord.charAt(0)) {
                startIndex = i;
                for (int j = 0; j < delimiterAfterWord.length(); j++) {
                    try {
                        if (sentence.charAt(startIndex) == delimiterAfterWord.charAt(j)) {
                            newWord = newWord + sentence.charAt(startIndex);
                        }
                        startIndex++;
                    } catch (Exception e) {
                    }
    
                }
                if (newWord.equals(delimiterAfterWord)) {
                    x = startIndex;
                    x = x - delimiterAfterWord.length();
                }
            }
        }
        return x;
    }
    

    }

提交回复
热议问题