java - 正则表达式一或两个特定字母

标签 java regex

我的正确表达是:

-四位数字

-签署E或R或WE或WR

-三位数字

表达式的第二部分应该是什么样子?我正在努力

^([0-9]{4})([E,R,WE,WR]{1})([0-9]{3})$

但是第二部分不起作用。

最佳答案

使用替换,而不是字符类:

^([0-9]{4})(E|R|WE|WR)([0-9]{3})$

您当前的内容表示匹配{ERW,}集中的任何一个字符。但我们可以进一步简化您的模式:

^([0-9]{4})(W?(?:E|R))([0-9]{3})$

关于java - 正则表达式一或两个特定字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51229747/

相关文章:

java - 使用 Java 的 Android 应用程序 - udp 字符串不发送

java - 当您尝试将 LinkedList 转换为 LinkedList<String> 时,编译时会发生什么?

.net - 是否有正则表达式风格可以让我计算 * 和 + 运算符匹配的重复次数?

python - scrapy - 如何使用正则表达式检索变量值

java - 找不到 : java. time.LocalDate() 的匹配构造函数

java - 如何从多个存储库中拉取相关信息?

javascript - 我如何使用正则表达式将这个 CSS block 转换为 LESS?

java - String.matches 每次测试都失败?

ios - 使用 NSRegularExpression 从 NSString 中提取值

java - 如何打开与 View 中的错误相关的文件