我希望我的正则表达式只分配这些值:1a、1b、2a、2b、3a、3b、n。看来我的正则表达式不起作用:“[([1-3][a-b])(n)]”。为什么它没有“看到”包含 [1-3][a-b] 的圆括号以及这个正则表达式应该如何正确工作?
最佳答案
I'd like my regex to assign these and only these values:
1a
,1b
,2a
,2b
, 3a,3b
,n
.
这意味着,您需要使用
.matches("[1-3][ab]|n")
请参阅regex demo
在您的模式中,外部方括号创建了一个字符类,内部方括号被视为 unions并且整个 "[([1-3][a-b])(n)]"
仅匹配 1 个字符(a (
或 1
到 3
数字,或 a
到 b
字母等。
关于java - 正则表达式分配不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40771271/