有没有办法定义正则表达式,只有在至少有N个唯一字符时才会匹配?
示例:(N = 3)
aba => no match
abc => match
abbc => match
ab => no match
abcd => match
答案 0 :(得分:4)
答案 1 :(得分:1)
使用regex
这些问题非常棘手。
SInce问题被标记为 regex
,您可以尝试基于此lookahead
的正则表达式:
(.).*?((?!.*?\1).).*?((?!.*?\2).)
在线演示:http://regex101.com/r/dH1rP4
不匹配:
匹配:
答案 2 :(得分:0)
EDITED
/(?:(.)(?!.*?\1).*){3}/
使用所需的唯一字符值更改3
PREEDIT - 只是为了提供文件并保持评论的一致性,这是最初发布的答案
/^(?:(.)(?!.*\1.*$)){3}$/
不,它不是OP所需要的,我误解了这个问题。此正则表达式测试字符串是否仅由指定数量的唯一字符 形成。