regex 匹配字符串中长度大于2个字符的字母数字单词

sbtkgmzw  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(183)

我有下面的正则表达式。

/^(.*[^0-9])(.[a-z]+[0-9]+[a-z0-9]*|[0-9]+[a-z]+[a-z0-9]*{3,})(.*)$/gm

我基本上想匹配一个URL中的字母数字组,长度大于2个字符。所以基本上:
在URL:/version/a1/type/eg1234/abc中,eg1234应匹配,因为它是字母数字,且长度大于2。
然而,虽然我的字母数字匹配逻辑看起来工作得很好,但长度条件(即{3,})没有得到满足,例如,在/version/a1/type/中,正则表达式也匹配a1,但它不应该匹配,因为它的长度小于2个字符。
请帮助我纠正我的正则表达式。

0x6upsns

0x6upsns1#

请尝试:

(?=\d+[a-z][a-z\d]*|[a-z\d]*[a-z]\d)[a-z\d]{3,}

Regex demo.
这将仅匹配/version/a1/type/eg1234/abc中的eg1234

jv2fixgn

jv2fixgn2#

请尝试:

/\b(?=[a-zA-Z0-9]{4,})(?=(?:[^\/\d]*\d){4,})([^\/]{3,})/

Demo

相关问题