這種模式等號一致,後跟一個可選的空間和包裹一個字in @ symbols:
Pattern pattern = Pattern.compile("= [email protected](.*)@");
Matcher matcher = pattern.matcher("[email protected]@");
if (matcher.matches()) {
System.out.println(matcher.group(1));
}
// Prints: "WORD"
除非我誤解了您希望完成的任務,否則無法看到後視的需要。然而,下面應該工作:
Pattern pattern = Pattern.compile("(?<== ?)@(.*)@");
Matcher matcher = pattern.matcher("= @[email protected]");
if (matcher.find()) {
System.out.println(matcher.group(1));
}
// Prints: "WORD"
否定模式,然後完成如下:
Pattern pattern = Pattern.compile("(?<!= ?)@(.*)@");
Matcher matcher = pattern.matcher("[email protected]@");
System.out.println(matcher.find());
// Prints: "false"