正则表达式:我如何匹配重复的字符或数字

Regex: how do i match repeating char or number

我想到了这个正则表达式:

^[pP]{2}[^a-m](\d)+

匹配:ppt92617 ppy92619 PPr99999k

问题是,第三个索引中的每个数字不应在字符串的其余部分重复。因此,第一个字符串是匹配的,其他两个则不是。 我该怎么做?

这是匹配唯一数字序列的正则表达式。假设您找到 5 个唯一数字,您的代码应如下所示:

^[pP]{2}[^a-m](?!.*(.).*)\d{5}$
  1. ^[pP]{2}[^a-m] 是你的代码,你知道的:)
  2. ?! 是负前瞻
  3. .*(.).* 匹配一个被零个或多个字符包围的数字。 (.) 是捕获组(看起来像一个胸部)。
  4. \d{5}只允许前一组为5位
  5. 由于negative lookahead,如果没有之前使用的数字(检查自己),它会一起检查五次。

用我糟糕的英语很难解释清楚。我几年前就找到并保存了这个正则表达式,尽管它将来可能会有用。

最好看这里,以获得准确和正确的解释:Regex101