gpt4 book ai didi

正则表达式 - 只有一个特殊字符

转载 作者:行者123 更新时间:2023-12-04 02:14:39 26 4
gpt4 key购买 nike

我目前正在使用我为密码创建的正则表达式。

它必须遵守以下条件:

  • 8 个字符
  • 至少一名 MAJ (A-Z)
  • 至少一分钟 (a-z)
  • 至少一位数字 (0-9)
  • 来自以下的一个特殊字符:.,:;'!@#$%^&*_+=|(){}[?-]/\
  • 禁止使用以下字符:<>`

这是正则表达式:

(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[.,:;'!@#$%^&*_+=|(){}[?\-\]\/\\])(?!.*[<>`]).{8}

一切正常,但现在,我希望它接受仅一个特殊字符

我搜索并尝试了很多东西(例如在组末尾使用 {1}),但它根本不起作用! Aa1;;aaa 等结果仍然匹配..

谁能告诉我该怎么做?

最佳答案

关于:

^(?=.{8}$)(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?!.*[<>`])([^.,:;'!@#$%^&*_+=|(){}[?\-\]\/\\]*)[.,:;'!@#$%^&*_+=|(){}[?\-\]\/\\](?1)$

DEMO

它先行检查长度,然后确保它只有一个特殊字符,前后有不同的东西

(?1)是对第一组模式的引用,您可以将其替换为 [^.,:;'!@#$%^&*_+=|(){}[?\-\]\/\\]*如果您希望或不支持您的工具

DEMO

或者,在保留原始语法的同时:


(?=.*[A-Z])
(?=.*[a-z])
(?=.*[0-9])
(?!.*[<>`])
(?=[^.,:;'!@#$%^&*_+=|(){}[?\-\]\/\\]*
[.,:;'!@#$%^&*_+=|(){}[?\-\]\/\\]
[^.,:;'!@#$%^&*_+=|(){}[?\-\]\/\\]*$
)
.{8}$

这是压缩版本:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?!.*[<>`])(?=[^.,:;'!@#$%^&*_+=|(){}[?\-\]\/\\]*[.,:;'!@#$%^&*_+=|(){}[?\-\]\/\\][^.,:;'!@#$%^&*_+=|(){}[?\-\]\/\\]*$).{8}$

DEMO

关于正则表达式 - 只有一个特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35060182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com