You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式匹配规则问题求助:需仅允许大写字母,排除指定字符及重音

解决方案

问题分析

你的正则表达式存在两个核心问题:

  1. /i修饰符违规:该修饰符让正则不区分大小写,导致[A-Z]会匹配小写字母,直接违反了“排除小写字母”的需求。
  2. 末尾字符限制宽松:[^&'()._]允许任何不是这几个特殊字符的字符(包括重音字符如é),这就是为什么POTATOé被错误允许——前面的POTATO匹配[A-Z\s]*,最后一个é不在排除的特殊字符列表里,因此被正则放行。而POTATOéé被拒绝是因为中间的é不匹配[A-Z\s]*,导致正则无法完成整个字符串的匹配。

修正后的正则表达式

^(?!.*[a-zà-ÿ&'()._])[A-Z][A-Z\s]*$

规则说明

  • (?!.*[a-zà-ÿ&'()._]):否定前瞻,确保整个字符串中不存在以下字符:
    • 小写字母(a-z)
    • 重音字符(à-ÿ,覆盖大部分西欧语言的重音字符)
    • 指定要排除的特殊字符:& ' ( ) . _
  • [A-Z]:强制字符串以大写字母开头,符合你原正则的设计逻辑。
  • [A-Z\s]*:允许后续字符为大写字母或空格,数量不限(包括零个)。

验证示例

  • ✅ 匹配:POTATO, HELLO WORLD, A B C
  • ❌ 拒绝:POTATOé, potato, HELLO&WORLD, A_B

内容的提问来源于stack exchange,提问作者Thomas Jqt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 10:01:16