使用正则表达式限制字符出现次数

时间:2014-02-09 12:59:21

标签: regex

我正在使用这个简单的正则表达式:

([A-Za-z0-9!@#]*)

我想限制字符!@#,而每个字符在整个字符串中最多可显示5次。

有效字符串为:t!!!sd###ui##pp!@!@#II#@!00!!等。

无效的字符串将是:3!222@34@#@@#@@@!!@!@!@!@!@!A

有可能吗?

2 个答案:

答案 0 :(得分:1)

您可以使用此模式:

^(?!(?:[^!]*!){6})(?!(?:[^@]*@){6})(?!(?:[^#]*#){6})[A-Za-z0-9!@#]*$

答案 1 :(得分:0)

你需要使用前瞻。使用此正则表达式:

^(?!(.*?!){6})(?!(.*?#){6})(?!(.*?@){6})[A-Za-z0-9!@#]+$

在线演示:http://regex101.com/r/cR9yH9