通过regEx避免重复字符

时间:2015-09-05 15:29:12

标签: javascript c# regex

我有以下四种RegEx模式

  string strIMEIRegEx = "^[0-9]{15}$";
  string strIMEIRegExAlt = "^[a-fA-F0-9]{14}$";
  string strNameRegEx = "^[0-9A-Za-z ]{1,50}$";
  string strNameRegEx = @"^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\""\']*$";

问题

  1. 对于strIMEIRegExstrIMEIRegExAlt,它允许重复0计数14(例如 - 00000000000000),我需要避免。它也不应该在开头允许0。
  2. 适用于strNameRegEx和strNameRegEx it allows any single character string (For E.g it accepts&#34; @&#34;,&#34;!&#34;,&#34; q&#34;,&#34; 1& #34;`)。此RegEx应允许使用字母数字(带/不带特殊字符)
  3. 我知道我必须使用(.)\1{"Number of repeating characters wants to avoid",}更新上述RegEx,但我无法弄清楚如何使用上述RegEx模式进行此修复。

1 个答案:

答案 0 :(得分:0)

  

1 - 对于strIMEIRegEx和strIMEIRegExAlt,它允许重复0计数14(例如 - 00000000000000),我需要避免。

在开始时使用否定先行断言。

string strIMEIRegEx = "^(?!0+$)[1-9][0-9]{14}$";
string strIMEIRegExAlt = "^(?!0+$)[a-fA-F1-9][a-fA-F0-9]{13}$";

一旦问题得到更新,我会更新第二个案例的答案,因为目前的问题不明确。