正则表达式:允许 1-25 个字母或空格但不包括三字母值列表
RegEx: allow 1-25 letters or spaces but exclude three-letter-value-list
我是这个论坛的新手,希望有人能支持我。
我需要创建一个允许 1 到 25 个字母或空格但不允许值 EMP、NDB、POI 或 CWR 之一的 RegEx 模式。
我使用负前瞻尝试了以下方法:
((?!EMP|NDB|POI|CWR)[A-Za-z\s]{1,25})$
但是这不能正常工作,该值(如 EMP)仍然被接受 - 参见 https://regex101.com/r/YfflBi/1
只有当我只有字母(没有空格)并且限制为 3 个时,这才有效:
((?!EMP|NDB|POI|CWR)[A-Za-z]{3})$
(参见 https://regex101.com/r/SzmuwP/1)
然而,这里的挑战是我需要接受 1 到 25 个字母或空格,但不是我提到的三个字母值之一。
非常感谢大家思考解决方案!
您可以使用
^(?:(?!EMP|NDB|POI|CWR)[A-Za-z\s]){1,25}$
参见regex demo。 详情:
^
- 字符串开头
(?:
- 非捕获组的开始:
(?!EMP|NDB|POI|CWR)[A-Za-z\s]
- 不是负前瞻 中定义的字符序列的起始字符的字母或空格
){1,25}
- 重复非捕获组内的模式序列 1 到 25 次
$
- 字符串结尾。
我是这个论坛的新手,希望有人能支持我。
我需要创建一个允许 1 到 25 个字母或空格但不允许值 EMP、NDB、POI 或 CWR 之一的 RegEx 模式。
我使用负前瞻尝试了以下方法:
((?!EMP|NDB|POI|CWR)[A-Za-z\s]{1,25})$
但是这不能正常工作,该值(如 EMP)仍然被接受 - 参见 https://regex101.com/r/YfflBi/1
只有当我只有字母(没有空格)并且限制为 3 个时,这才有效:
((?!EMP|NDB|POI|CWR)[A-Za-z]{3})$
(参见 https://regex101.com/r/SzmuwP/1)
然而,这里的挑战是我需要接受 1 到 25 个字母或空格,但不是我提到的三个字母值之一。
非常感谢大家思考解决方案!
您可以使用
^(?:(?!EMP|NDB|POI|CWR)[A-Za-z\s]){1,25}$
参见regex demo。 详情:
^
- 字符串开头(?:
- 非捕获组的开始:(?!EMP|NDB|POI|CWR)[A-Za-z\s]
- 不是负前瞻 中定义的字符序列的起始字符的字母或空格
){1,25}
- 重复非捕获组内的模式序列 1 到 25 次$
- 字符串结尾。