Java string - get everything between (but not including) two regular expressions?

前端 未结 2 584
独厮守ぢ
独厮守ぢ 2020-12-13 11:24

In Java, is there a simple way to extract a substring by specifying the regular expression delimiters on either side, without including the delimiters in the final substring

2条回答
  •  独厮守ぢ
    2020-12-13 11:38

    Write a regex like this:

    "(regex1)(.*)(regex2)"
    

    ... and pull out the middle group from the matcher (to handle newlines in your pattern you want to use Pattern.DOTALL).

    Using your example we can write a program like:

    package test;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class Regex {
    
        public static void main(String[] args) {
            Pattern p = Pattern.compile(
                    "(.*)",
                    Pattern.DOTALL
                );
    
            Matcher matcher = p.matcher(
                    "Header\n\n\ntext"
                );
    
            if(matcher.matches()){
                System.out.println(matcher.group(1));
            }
        }
    
    }
    

    Which when run prints out:

    Header
    
    
    text
    

提交回复
热议问题