正则表达式匹配包含任意字符中的两个但不包含三个的字符串
Regex to match strings containing two of any character but not three
我希望正则表达式匹配包含相同字符的字符串两次(不一定连续),但如果该字符出现三次或更多次则不匹配。
例如,给定这两个输入:
abcbde
abcbdb
第一个 abcbde
会匹配,因为它包含两次 b
。但是,abcbdb
包含三次 b
,因此不匹配。
我创建了这个正则表达式,但它同时匹配:
(\w).*{1}
我也尝试过使用 ?
修饰符,但它仍然匹配 abcbdb
,我不希望它匹配。
您需要进行两次检查:第一次检查以确保输入中的字符不存在 3 次,第二次检查以查找存在 2 次的字符:
^(?!.*(\w).*.*).*?(\w).*
与使用您的编程语言构建字符频率数组相比,这效率低得可怕,整个输入只需要 1 次。但它有效。
我希望正则表达式匹配包含相同字符的字符串两次(不一定连续),但如果该字符出现三次或更多次则不匹配。
例如,给定这两个输入:
abcbde
abcbdb
第一个 abcbde
会匹配,因为它包含两次 b
。但是,abcbdb
包含三次 b
,因此不匹配。
我创建了这个正则表达式,但它同时匹配:
(\w).*{1}
我也尝试过使用 ?
修饰符,但它仍然匹配 abcbdb
,我不希望它匹配。
您需要进行两次检查:第一次检查以确保输入中的字符不存在 3 次,第二次检查以查找存在 2 次的字符:
^(?!.*(\w).*.*).*?(\w).*
与使用您的编程语言构建字符频率数组相比,这效率低得可怕,整个输入只需要 1 次。但它有效。