【问题标题】:Regular Expression for atleast one character and one number with no repeat more than two至少一个字符和一个数字的正则表达式,重复不超过两个
【发布时间】:2015-04-07 16:33:06
【问题描述】:

我正在尝试以下条件的正则表达式之一:

至少 1 个数字, 至少1个字符, 长度应为 3 到 16 位。 任何字符和数字都不能重复超过 2 次。

我在这里尝试了一个正则表达式。

(^(?=.*\d)(?=.*[a-zA-Z]).{3,16}$)\1{2,}

但它没有成功。

有效和无效帖子示例:

  • advan@123 -valid

  • advan@4 -valid

  • advvvan@123 -无效

  • advan@11123 -无效

  • advan123 -有效
  • 1231123123ab -有效
  • advadvvadv12 -有效

【问题讨论】:

  • 贴一些有效和无效的例子。
  • 您的最终解决方案不应仅限于正则表达式。

标签: javascript c# asp.net regex


【解决方案1】:

您可以尝试使用此正则表达式(已编辑以使具有三个连续符号的字符串失败):

^(?=.*[0-9])(?=.*[a-zA-Z])(?!.*(.)\1\1.*).{3,16}$

example here

【讨论】:

  • 是的,你编辑了..简单的一个^(?=.*[0-9])(?=.*[a-zA-Z])(?!.*?(.)(?:.*?\1){2})[a-zA-Z0-9]{3,16}$
  • @AvinashRaj:谢谢你的提示。是的,一个点就足够了,因为我们已经在预测中设置了条件。
  • 不,不在前瞻内。我们在这里定义了它[a-zA-Z0-9]{3,16}$。并且在负前瞻中最后的.* 是不必要的。
  • @stribizhev:谢谢,您提供的正则表达式只需要字母数字。它应该验证具有至少 1 个字符、至少 1 个数字且没有重复字符的字符串。
  • 已更新。现在,3e3e3ee@12e 通过,3e3e3eee@2e 失败。唯一的变化是我在第三次环视中删除了(.)\1\1 之间的可选字符。如您所见,允许使用双连续符号。
猜你喜欢
  • 1970-01-01
  • 2021-02-19
  • 2022-11-24
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 2018-11-07
相关资源
最近更新 更多