java正则表达式可选地捕获2个组
我有一根包含例如1a2b的绳子。数字是1到9,字母(a | b)是常数。我想要一个正则表达式,可以查找'1a'和'2b',其中任一组都是可选的
我有这个
String description = "bla bla bla: 1a2b more bla bla bla";
Pattern pattern = Pattern.compile("([1-9]a)([1-9]b)");
Matcher matcher = pattern.matcher(description);
if (matcher.find()) {
System.out.println(" group1: " + matcher.group(1));
System.out.println(" group2: " + matcher.group(2));
} else {
System.out.println("no match");
}
哪个输出
group1: 1a
group2: 2b
如果我在任一组后面添加?
,它仍然有效。如果我在两个组之后添加?
,它仍然匹配,但两个组都返回null
如何使这两个组都是可选的,以便匹配
案例1:“bla 1a bla”
案例2:“bla 2b bla”
案例3:“bla 1a2b bla” ?
共 (0) 个答案