首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串中至少有一个字母或至少一个数字的字母数字字符串的正则表达式

问字符串中至少有一个字母或至少一个数字的字母数字字符串的正则表达式
EN

Stack Overflow用户
提问于 2011-04-21 16:33:24
回答 5查看 15.2K关注 0票数 5

为了测试一个字母数字字符串,我们通常使用正则表达式"^[a-zA-Z0-9_]*$" (最好是用于C#的"^\w+$" )。但是这个正则表达式只接受数字字符串或字母字符串,比如"12345678"或"asdfgth"。

我需要一个正则表达式,它将只接受有的字母数字字符串-至少一个字母和一个数字。也就是说,regex "ar56ji"将是正确的字符串之一,而不是前面所说的字符串。

提前谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-21 17:19:18

这应该可以做到:

代码语言:javascript
复制
if (Regex.IsMatch(subjectString, @"
    # Match string having one letter and one digit (min).
    \A                        # Anchor to start of string.
      (?=[^0-9]*[0-9])        # at least one number and
      (?=[^A-Za-z]*[A-Za-z])  # at least one letter.
      \w+                     # Match string of alphanums.
    \Z                        # Anchor to end of string.
    ",
    RegexOptions.IgnorePatternWhitespace)) {
    // Successful match
} else {
    // Match attempt failed
} 

编辑2012-08-28,通过将懒惰的点星更改为特定的贪婪字符类,提高了外观的效率。

票数 9
EN

Stack Overflow用户

发布于 2011-04-21 16:44:50

试试这个:

代码语言:javascript
复制
"^\w*(?=\w*\d)(?=\w*[a-zA-z])\w*$"

这里有一篇很好的文章:http://nilangshah.wordpress.com/2007/06/26/password-validation-via-regular-expression/

票数 1
EN

Stack Overflow用户

发布于 2011-04-21 16:44:14

这应该是可行的:

代码语言:javascript
复制
"^[a-zA-Z0-9_]*([a-zA-Z][0-9]|[0-9][a-zA-Z])[a-zA-Z0-9_]*$"

这将匹配:

代码语言:javascript
复制
<zero-or-more-stuff>
EITHER <letter-followed-by-digit> OR <digit-followed-by-letter>
<zero-or-more-stuff>

通过确保您的数字后面有字母或字母后面跟着数字,您正在强制执行至少有一个数字和至少一个字母的要求。请注意,我忽略了上面的_,因为不清楚您是否会接受它作为字母、数字,还是两者都不接受。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5747061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档