下面是我正在使用的正则表达式的最新版本,它正在抛出错误“无效正则表达式”。
XSD:正则表达式
'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).{10,15}$'未能在位置4进行验证:当前选项设置不支持此表达式。
我在xsd文件中得到了这个异常,我正在message (IIB)中开发这个xsd。有人能帮我解决这个问题吗?
发布于 2018-11-13 12:04:19
转义所有=符号:
As in change = to \=
发布于 2018-11-13 12:19:00
它看起来像是要查看字符串是否至少包含大写字符、小写字符、数字、特殊字符,以及字符串是否长在10到15个字符之间。
就像@Toto已经评论过的那样,我认为您的口味不支持前瞻性。您可以在不使用捕获组的情况下(我借用并增强了这里的代码)并对它们进行测试:
^
(?> #MAIN iteration (atomic only for efficiency)
(?<upper>[A-Z]) # an uppercase letter
| # or
(?<lower>[a-z]) # a lowercase letter
| # or
(?<digit>[0-9]) # a digit
| # or
(?<special>[^(0-9|a-z|A-Z)]) # a special
| # or
. # anything else
){10,15}? #REPEATED 10 to 15 times
#
#CONDITIONS:
(?(upper) # 1. There must be at least 1 uppercase
(?(lower) # 2. If (1), there must be 1 lowercase
(?(digit) # 3. If (2), there must be 1 digit
(?(special) # 4. If (3) there must be 1 special
| (?!) # Else fail
) #
| (?!) # Else fail
) #
| (?!) # Else fail
) #
| (?!) # Else fail
) $ #您可以在这里测试它:regex101实例
https://stackoverflow.com/questions/53279604
复制相似问题