我是新来这个论坛的,希望有人能支持我。
我需要创建一个正则表达式模式,允许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次$
-字符串结束