正则表达式匹配至少3个字母

时间:2018-02-02 18:14:37

标签: regex

我需要正则表达式匹配

  • 至少3个字母
  • min length:3
  • 如果字符串中有3个字母,则
  • 也可能包含[0-9_-](如果str1str_str-,则为真 ---------str-s-t-r-但如果123---___123---123___---___)则为假

我这样做^(?=.*[a-zA-Z_-].*)(?=.*\d.*)[\w]{3,}$但它与str11strstr-str_等字符串不匹配。

2 个答案:

答案 0 :(得分:0)

这符合您的需要:

([0-9_-]*[a-z][0-9_-]*){3}

匹配

str1
str_
1str
str-

不匹配:

123
---
___
123---
123___
---___

这些术语是单独出现还是用空格分隔,逗号?

如果它们一个接一个地出现,你应该使用^和$之间的正则表达式。

答案 1 :(得分:0)

试试这个:[0-9_-]*[a-zA-Z]{3,}[0-9_-]*。这假定您的字符串必须至少包含3个字母。