只需要一个正则表达式来检查字符串中的“2 个字母和 4 个数字”

Posted

技术标签:

【中文标题】只需要一个正则表达式来检查字符串中的“2 个字母和 4 个数字”【英文标题】:Need a regex for checking "2 alphabets and 4 numeric" only in a string 【发布时间】:2018-11-03 03:43:36 【问题描述】:

我需要你的帮助来编写一个正则表达式来验证一个应该遵循以下规则的字符串。

“2个字母和4个数字。可以是混合字符串”

例如:11a1a1 或 1a11a1..etc

感谢您的帮助。

【问题讨论】:

没有足够的信息和不清楚你在问什么,还让你的朋友点赞并将你的问题标记为收藏是不好的形式 我不认为它不清楚。任何人都可以简单地理解。 @wp78de 让我检查一下。 it can be a mixed string是什么意思? @dawg 从例子中你可以看到。任何格式或任何顺序 【参考方案1】:

试试这样:

^(?=.*\d.*?\d.*?\d.*?\d)(?=.*[a-zA-Z].*?[a-zA-Z]).+$

由于问题没有指定这样的字符串可以有多长,只要满足基本规则,任何长度都可以接受。

Demo

const regex = /^(?=.*\d.*?\d.*?\d.*?\d)(?=.*[a-zA-Z].*?[a-zA-Z]).+$/gm;
const str = `aa1111
b1b111
1111aa
11a1a1
1a11a1

aaaa11
bbb111
b1b1b1
b11b1b`;
let m;

while ((m = regex.exec(str)) !== null) 
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) 
        regex.lastIndex++;
    
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match) => 
        console.log(`Found match: $match`);
    );

【讨论】:

完美。感谢您的帮助。

以上是关于只需要一个正则表达式来检查字符串中的“2 个字母和 4 个数字”的主要内容,如果未能解决你的问题,请参考以下文章

pyspark 中的正则表达式来检查字母和空格(也可以使用 uni 代码)

正则表达式:检查是不是有超过 x 个换行符

正则表达式检查上一行

如何检查字符串是不是与 Thymeleaf 中的正则表达式匹配?

正则表达式检查字符串中的唯一字符和禁止字符

使用正则表达式检查字符串中的第三个字符