如何让匹配文件名的正则表达式支持大小写不敏感?
让文件名匹配正则支持大小写不敏感的两种方法
你可以通过以下两种方式修改正则,实现对BOOK关键词的大小写不敏感匹配:
方法一:使用正则不敏感修饰符
大多数正则引擎支持(?i)修饰符来开启大小写不敏感模式。你可以把它放在正则的开头,让整个表达式忽略大小写:
(?i).*?-BOOK-.*?\.csv
如果只想让BOOK部分不敏感(保持.csv等其他部分的大小写敏感),可以限定修饰符的作用范围:
.*?-(?i)BOOK(?-i)-.*?\.csv
这样只有中间的BOOK会匹配任意大小写组合,其他部分依旧遵循大小写敏感规则。
方法二:用字符组枚举大小写
如果你的正则环境不支持修饰符,或者想更直观地控制匹配规则,直接把BOOK的每个字符拆成大小写可选的字符组:
.*?-[Bb][Oo][Kk]-.*?\.csv
这种写法兼容性极强,不需要依赖引擎特性,每个字符都明确匹配大写或小写形式。
两种方法都能匹配以下格式的文件名:
sometext-BOOK-sometext.csvsometext-book-sometext.csvsometext-BooK-sometext.csv(混合大小写)
内容的提问来源于stack exchange,提问作者Data Engineer
相关产品推荐
相关产品推荐

