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?
For example, if I have a string like this:
Header text
what is the easiest way to extract the substring:
Header text
Please note that the substring may contain line breaks...
thanks!
解决方案
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