首页 > 解决方案 > ENUM 正则表达式不区分大小写

问题描述

我有一个枚举正则表达式 ^(TECHNICAL|SUPPORT|ADMINISTRATIVE|BILLING|OTHER),我想让它不区分大小写。

我尝试了几种方法,以此作为参考,但没有任何效果 Regex: a(?i)bc Matches: a # match the character 'a' (?i) # enable case insensitive matching b # match the character 'b' or 'B' c # 匹配字符 'c' 或 'C'

正则表达式:a(?i)b(?-i)c 匹配:a # 匹配字符 'a' (?i) # 启用不区分大小写的匹配 b # 匹配字符 'b' 或 'B' (?-i) # 禁用不区分大小写的匹配 c # 匹配字符 'c'

正则表达式:
a(?i:b)c 匹配:a # 匹配字符 'a' (?i: # 开始非捕获组 1 并启用不区分大小写的匹配 b # 匹配字符 'b' 或 'B' ) # end non-capture group 1 c # 匹配字符'c'

标签: java

解决方案


要使 RegExp 不区分大小写,只需(?i)在开头添加:

boolean res = "techNICAL".matches("(?i)^(TECHNICAL|SUPPORT|ADMINISTRATIVE|BILLING|OTHER)$");

输出:

真的

regex101.com上的演示


推荐阅读