正则表达式分配不正确

时间:2016-11-23 17:55:15

标签: java regex brackets parentheses

我希望我的正则表达式只分配这些值:1a,1b,2a,2b,3a,3b,n。似乎我的正则表达式不起作用:" [([1-3] [a-b])(n)]"。为什么它没有"看到"包含[1-3] [a-b]的圆括号,这个正则表达式应该如何正常工作?

1 个答案:

答案 0 :(得分:1)

  

我希望我的正则表达式只能分配这些值:1a1b2a2b,3a,3bn

这意味着,您需要使用

.matches("[1-3][ab]|n")

请参阅regex demo

在你的模式中,外部方括号创建了一个字符类,内部的方括号被视为unions,整个"[([1-3][a-b])(n)]"只匹配1个字符((或{ {1}}至1数字,或3a封信等。