我想删除单词"object"直到单词"date"的开头例如:blablaobjectthisisatestdateblabla
我想要这个:blabladateblabla
我试着用(.*)(object)(.*)(date)(.*)
组的这个表达式来替换为$1$4$5
,但它不起作用,知道吗?
如果您想从object
删除到date
,但不包括date
,那么使用前瞻断言是一种方法:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Test
{
public static void main(String[] args) {
String s = "blablaobjectthisisatestdateblabla";
Pattern pattern = Pattern.compile("object[\s\S]*(?=date)");
Matcher m = pattern.matcher(s);
s = m.replaceAll("");
System.out.println(s);
}
}
打印:
blabladateblabla
正则表达式:
object # matches object
[sS]* # matches 0 or more whitespace or non-whitespace characters (. will not match the newline)
(?=date) # until the next characters are 'date'
参见Regex Demo