求匹配双字母数字模式及任意次逗号空格重复的正则表达式
匹配任意重复次数的双字母加数字模式的正则表达式
核心正则表达式
如果是**固定以两个特定字母(如示例中的CC)**开头的场景,使用:
^CC\d+(?:, CC\d+)*$
如果是任意两个大小写字母开头的通用场景,使用:
^[A-Za-z]{2}\d+(?:, [A-Za-z]{2}\d+)*$
表达式拆解
^:锚定字符串起始位置,避免匹配字符串前的无关内容CC\d+/[A-Za-z]{2}\d+:匹配基础单元——固定双字母(或任意双字母)+ 至少一位数字(?:, CC\d+)*/(?:, [A-Za-z]{2}\d+)*:非捕获组,匹配「逗号+空格+基础单元」的组合,*表示该组合可重复0次或多次,完美适配任意重复次数的需求$:锚定字符串结束位置,避免匹配字符串后的无关内容
验证示例
对应给出的单元格内容,使用REGEXMATCH函数验证结果如下:
| 内容 | 公式 | 预期输出 |
|---|---|---|
| CC148 | REGEXMATCH(A1, "^CC\d+(?:, CC\d+)*$") | TRUE |
| CC249, CC193 | REGEXMATCH(A2, "^CC\d+(?:, CC\d+)*$") | TRUE |
| CC345, CC856, CC749 | REGEXMATCH(A3, "^CC\d+(?:, CC\d+)*$") | TRUE |
关于之前尝试的表达式问题
你之前用的(CC\d+)|.无法满足需求,原因是:
- 该表达式逻辑是「匹配单个
CC\d+单元,或者匹配任意单个字符」,会误匹配包含无关字符的内容 - 没有锚定字符串的首尾,无法限制整个内容的结构,导致不符合规则的内容也可能被判定为匹配
内容的提问来源于stack exchange,提问作者Miltos
相关产品推荐
相关产品推荐

