下面是我正在使用的正则表达式的最新版本,并引发错误“无效正则表达式”。
XSD:正则表达式
'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).{10,15}$'
在位置4上验证失败:当前选项设置中不支持此表达式。
我在xsd文件中遇到此异常,并且正在消息代理(IIB)中开发此xsd。谁能帮我解决这个问题?
答案 0 :(得分:0)
全部转义=符号:
更改时=等于\ =
答案 1 :(得分:0)
您似乎想查看一个字符串是否至少包含一个大写字母,一个小写字母,一个数字,一个特殊字符,以及该字符串的长度在10到15个字符之间。
就像@Toto一样,我认为您的风味不支持超前。您可以不使用捕获组并对其进行测试(我从here借来并增强了代码)并进行测试:
^
(?> #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 example