java - 正则表达式分配不正确

标签 java regex brackets parentheses

我希望我的正则表达式只分配这些值: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 (13 数字,或 ab 字母等。

关于java - 正则表达式分配不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40771271/

相关文章:

python 正则表达式匹配可选的方括号

mysql - 在mysql数据库中保存化学名称时遇到问题(括号和方括号)

java - 具有依赖项的 Maven 包

java - 是否可以以编程方式解析特定 IP 地址以负载平衡域名?

php - 现在如何检查 YouTube 视频 URL 是否正在验证?

python - 为什么 pandas 的类别/垃圾箱用左括号写,但用右括号写?

java react 堆filterAndMap?

java - Android Studio 中警告 NullPointerException

正则表达式:在 "Title"数据库字段中匹配 Mr. Ms. etc

regex - 如何查找时间值(类似 # :##) in a string