如何让这个正则表达式接受不超过1个特殊字符

如何让这个正则表达式接受不超过1个特殊字符,第1张

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

?=.*我理解是说匹配任何这些角色无限次。

我取出了.*,但它没有按预期工作,并验证以下字符串:*OeuH5c#i`m{1}\\H2e&#.?*是有效的。

我还跟着.*括号中的字符列表来明确说明我只想要一个字符,但这也不起作用..

如果没有最佳答案:,那么只有在找到1个特殊字符的情况下才能实现这一点吗?

1 个答案:

^(?=.*[A-Z])(?=\w*[-!@#$%^&*()_= {[}\]:;'<,>.?\/]\w*$).{8,}$

答案 0 :(得分:0)

您可以使用此正则表达式:

RegEx Demo

\w*
  1. 围绕特殊字符类机智
  2. 将未转义的连字符保留在字符类的第一个或最后一个位置
  3. o任意一方,以确保只有特殊字符。
    本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复