Java 带有或条件以验证两种不同模式的正则表达式?
我需要制作一个正则表达式,在这里我可以验证这两种模式。基本上,如果从下面两个模式传递任何字符串,我应该能够验证它Java 带有或条件以验证两种不同模式的正则表达式?,java,regex,Java,Regex,我需要制作一个正则表达式,在这里我可以验证这两种模式。基本上,如果从下面两个模式传递任何字符串,我应该能够验证它 第一种模式是-我可以有这样的字符串tree1或tree2。所以基本上是一个前面有stringtree的数字 第二种模式是-我可以有这样的字符串tree1a或tree1b或tree2a或tree2b。所以这个模式的树[number][a-z] 我使用下面的正则表达式,但它只适用于第一个模式。我如何制作一个可以同时处理这两种模式的正则表达式 Pattern patternSet =
- 第一种模式是-我可以有这样的字符串
或tree1
。所以基本上是一个前面有stringtree2
的数字tree
- 第二种模式是-我可以有这样的字符串
或tree1a
或tree1b
或tree2a
。所以这个模式的树[number][a-z]tree2b
Pattern patternSet = Pattern.compile("^tree[0-9]$");
您可以添加可选的
[a-z]?
字符类
^tree[0-9][a-z]?$
字符串的开头^
逐字匹配树
匹配数字0-9[0-9]
可选择匹配a-z[a-z]?
字符串结尾$
您的正则表达式应该看起来像so
tree\d[a-z]?
,因此您的模式可以是:
Pattern patternSet = Pattern.compile("tree\\d[a-z]?");
如果您想要一个以上的数字和一个以上的字母,您可以使用:
Pattern patternSet = Pattern.compile("tree\\d+[a-z]*");
最后一个图案可以匹配树123,
tree1abc
或tree123abc
你能告诉我,如果你等待的时间超过一个数字,超过一个字母,你可以用作为例子吗?@flash我的意思是如果你想匹配,例如如果你想匹配tree123
或tree1abc
或tree123abc
Pattern patternSet = Pattern.compile("tree\\d+[a-z]*");