首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式错误:“无效正则表达式”

正则表达式错误:“无效正则表达式”
EN

Stack Overflow用户
提问于 2018-11-13 11:03:34
回答 2查看 2.5K关注 0票数 1

下面是我正在使用的正则表达式的最新版本,它正在抛出错误“无效正则表达式”。

XSD:正则表达式'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).{10,15}$'未能在位置4进行验证:当前选项设置不支持此表达式。

我在xsd文件中得到了这个异常,我正在message (IIB)中开发这个xsd。有人能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2018-11-13 12:04:19

转义所有=符号:

As in change = to \=

票数 0
EN

Stack Overflow用户

发布于 2018-11-13 12:19:00

它看起来像是要查看字符串是否至少包含大写字符、小写字符、数字、特殊字符,以及字符串是否长在10到15个字符之间。

就像@Toto已经评论过的那样,我认为您的口味不支持前瞻性。您可以在不使用捕获组的情况下(我借用并增强了这里的代码)并对它们进行测试:

代码语言:javascript
复制
^
(?>                       #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实例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53279604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档