带或条件的java正则表达式来验证两种不同的模式?
我需要做一个正则表达式来验证这两种模式。基本上,如果从下面两个模式传递任何字符串,我应该能够验证它
- 第一种模式是-I可以有这样的字符串
tree1
或tree2
。所以基本上是一个前面有字符串tree
的数字李> - 第二种模式是-I可以有这样的字符串
tree1a
或tree1b
或tree2a
或tree2b
。所以这个模式的树[number][a-z]李>
我使用下面的正则表达式,但它只适用于第一个模式。我如何制作一个可以同时处理这两种模式的正则表达式
Pattern patternSet = Pattern.compile("^tree[0-9]$");
# 1 楼答案
可以添加可选的
[a-z]?
字符类^
字符串的开头tree
逐字匹配[0-9]
匹配数字0-9[a-z]?
可选地匹配a-z$
字符串结尾Regex demo| Java demo
# 2 楼答案
您的正则表达式应该看起来像
tree\d[a-z]?
,因此您的模式可以是:如果你想要一个以上的数字和一个以上的字母,你可以使用:
最后一个模式可以匹配
tree123
、tree1abc
或tree123abc