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

Regex 正则表达式至少匹配3个字母,regex,Regex,我需要一个正则表达式来匹配 至少3封信 最小长度:3 如果字符串中已有3个字母,则可能还包含[0-9.-](如果str1,str,str-, -----------str,-s-t-r-,但如果123,--,--,123--,123-- 我做了这个^(?=.[a-zA-Z.-].*)(?=..\d.*.[\w]{3,}$,但它不匹配字符串,如str1,str-,str,这符合您的需要: ([0-9_-]*[a-z][0-9_-]*){3} 匹配项: str1 str_ 1str str-

我需要一个正则表达式来匹配

  • 至少3封信
  • 最小长度:3
  • 如果字符串中已有3个字母,则可能还包含
    [0-9.-]
    (如果
    str1
    str
    str-

    -----------str
    -s-t-r-
    ,但如果
    123
    --
    --
    123--
    123--

我做了这个
^(?=.[a-zA-Z.-].*)(?=..\d.*.[\w]{3,}$
,但它不匹配字符串,如
str1
str-
str

,这符合您的需要:

([0-9_-]*[a-z][0-9_-]*){3}
匹配项:

str1
str_
1str
str-
不匹配:

123
---
___
123---
123___
---___
这些术语是单独出现的还是用空格、逗号分隔的


如果它们一个接一个地出现,您应该使用^和$.

尝试以下方法:
[0-9_-]*[a-zA-Z]{3,}[0-9_-]*
。这假设您的字符串必须至少有3个字母。

可能包含[0-9_-]如果已经有3个字母,这到底是什么意思。显示一些示例。请添加所需行为的几个匹配和非匹配示例。哦,你的意思是这样的
^(?=(?:[^0-9_-]*[a-zA-Z]){3}][\w-]{3,}$
@PM77-1我不需要至少3位数字