正则表达式添加条件必须具有1个或更多A-Z a-z

时间:2013-01-22 14:21:02

标签: .net regex

现有正则表达式

rWord = new Regex(@"\b(?:[-_'@\p{L}\p{N}]{2,40})\b");

想要添加至少有一个A-Z或a-z

的条件

为什么这会被拒绝?

现在

123会通过
  abc可以通过
  1ab会通过

我想123不要通过,因为它没有至少一个A-Z或a-z

2 个答案:

答案 0 :(得分:0)

请尝试以下正则表达式中的一个或多个字母:

[A-Za-z]+

答案 1 :(得分:0)

您可以添加至少需要一个字母的lookahead condition

(?=[-_'@\p{L}\p{N}]*[a-zA-Z])

结合原作,这就变成了:

\b(?:(?=[-_'@\p{L}\p{N}]*[a-zA-Z])[-_'@\p{L}\p{N}]{2,40})\b

reFiddle的工作示例。