Pattern pattern = Pattern.compile("\\d{4}\\s+[a-z|A-Z]{2}\\s+PLAIN\\sTEXT\\s+(.*?)\\(NS\\)");
Matcher matcher = pattern.matcher("2007 AL PLAIN TEXT ap2345 (NS)");
while (matcher.find())
{
System.out.println(matcher.group(1));
}
我希望它适用input1 = 2007 AL PLAIN TEXT ap2345 (NS)
(上面的正则表达式确实适用于此)但它失败了input2 = "ap2345"
. 我想在同一个组号中捕获这两个字符串,这意味着我需要将之前的捕获设为可选。我怎样才能做到这一点?
编辑::: 当字符串值为2007 AL PLAIN TEXT ap2345 (NS)
OR时,我希望相同的组号适用于两者ap2345