正则表达式:我如何匹配重复的字符或数字
Regex: how do i match repeating char or number
我想到了这个正则表达式:
^[pP]{2}[^a-m](\d)+
匹配:ppt92617
ppy92619
PPr99999k
问题是,第三个索引中的每个数字不应在字符串的其余部分重复。因此,第一个字符串是匹配的,其他两个则不是。
我该怎么做?
这是匹配唯一数字序列的正则表达式。假设您找到 5 个唯一数字,您的代码应如下所示:
^[pP]{2}[^a-m](?!.*(.).*)\d{5}$
^[pP]{2}[^a-m]
是你的代码,你知道的:)
?!
是负前瞻
.*(.).*
匹配一个被零个或多个字符包围的数字。 (.)
是捕获组(看起来像一个胸部)。
\d{5}
只允许前一组为5位
- 由于negative lookahead,如果没有之前使用的数字(检查自己),它会一起检查五次。
用我糟糕的英语很难解释清楚。我几年前就找到并保存了这个正则表达式,尽管它将来可能会有用。
最好看这里,以获得准确和正确的解释:Regex101
我想到了这个正则表达式:
^[pP]{2}[^a-m](\d)+
匹配:ppt92617
ppy92619
PPr99999k
问题是,第三个索引中的每个数字不应在字符串的其余部分重复。因此,第一个字符串是匹配的,其他两个则不是。 我该怎么做?
这是匹配唯一数字序列的正则表达式。假设您找到 5 个唯一数字,您的代码应如下所示:
^[pP]{2}[^a-m](?!.*(.).*)\d{5}$
^[pP]{2}[^a-m]
是你的代码,你知道的:)?!
是负前瞻.*(.).*
匹配一个被零个或多个字符包围的数字。(.)
是捕获组(看起来像一个胸部)。\d{5}
只允许前一组为5位- 由于negative lookahead,如果没有之前使用的数字(检查自己),它会一起检查五次。
用我糟糕的英语很难解释清楚。我几年前就找到并保存了这个正则表达式,尽管它将来可能会有用。
最好看这里,以获得准确和正确的解释:Regex101