RegEx:允许1-25个字母或空格,但不包括三个字母的value-list



我是新来这个论坛的,希望有人能支持我。

我需要创建一个正则表达式模式,允许1到25个字母或空间但不允许其中一个值EMP, NDB,芋泥或轨。

我尝试了以下使用反向向前看:

((?!EMP|NDB|POI|CWR)[A-Za-zs]{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-zs]){1,25}$

参见regex演示。细节:

  • ^-字符串
  • 起始
  • (?:-非捕获组开始;
    • (?!EMP|NDB|POI|CWR)[A-Za-zs]-一个字母或空格,不是在负向前看
    • 中定义的字符序列的起始字符
  • ){1,25}-在非捕获组内重复模式序列1 ~ 25次
  • $-字符串结束

最新更新