通过regEx避免重复字符

本文关键字:字符 regEx 通过 | 更新日期: 2023-09-27 18:11:16

我有以下四个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,它允许在计数14时重复0(例如- 00000000000000),这是我需要避免的。它不应该在开始也允许0。
  2. strNameRegEx和strNameRegEx it allows any single character string (For E.g it accepts "@","!"," 问"、"1")。这个RegEx应该允许字母数字(带/不允许特殊字符)

我知道我必须用(.)'1{"Number of repeating characters wants to avoid",}更新上述RegEx,但我无法弄清楚如何使用上述RegEx模式进行此修复。

通过regEx避免重复字符

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}$";

一旦问题得到更新,我将更新第二种情况的答案,因为当前的问题不清楚。