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

时间:2016-02-17 18:00:50

标签: regex string pattern-matching repeat

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

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

匹配:ppt92617 ppy92619 PPr99999k

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

1 个答案:

答案 0 :(得分:3)

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

<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
  1. ^[pP]{2}[^a-m](?!.*(.).*\1)\d{5}$ 是您的代码,您知道:)
  2. ^[pP]{2}[^a-m]为负面预测
  3. ?!匹配一个由零个或多个字符包围的数字。 .*(.).*是捕获组(看起来像个布布)。
  4. (.)允许前一组仅为5位数
  5. 如果之前没有使用过的号码(检查自己),它会一起检查五次,因为否定前瞻。
  6. 我很难用可怜的英语来解释它。我在几年前找到并保存了这个正则表达式,虽然它可能在将来有用。

    更好地查看此处,以获得准确而正确的解释:Regex101