c# - 编写适当的正则表达式以允许数字和字母和数字的组合混合

标签 c# asp.net regex asp.net-mvc boolean

我有一个字符串示例,如下所示:

51925120851209567

字符串和数字的长度可能会有所不同,但我只想让字符串只包含数字,或者是字母和数字的组合。例如,一个有效的应该是这样的:

B0031Y4M8S // contains combination of letters and numbers without white space

无效的正则表达式是:

Does not apply // this one contains white spaces and has only letters

总结一下,正则表达式应该只允许这些组合:

51925120851209567 // contains only numbers and is valid

B0031Y4M8S // contains combination of numbers and letters and is valid as well

其他都是无效的...

我目前的解决方案只涵盖了字符串是一组整数,没有别的......但是我不太确定如何过滤掉没有空格和特殊字符的数字和字母的组合对正则表达式也有效?

Regex regex = new Regex("^[0-9]+$");

    if (regex.IsMatch(parameter))
    { 
     // allow if statement to pass if the regex matches
    } 

谁能帮帮我?

最佳答案

你可以使用

^(?![A-Za-z]+$)[0-9A-Za-z]+$

它匹配 1+ 个字母数字字符,但如果所有字符串仅由字母组成,则匹配失败。

详情

  • ^ - 字符串的开始
  • (?![A-Za-z]+$) - 如果有 1+ 个 ASCII 字母后跟字符串的结尾,则匹配失败的否定前瞻当前位置
  • [0-9A-Za-z]+ - 1+ 个 ASCII 字母
  • $ - 字符串结尾。

参见 regex demo .

关于c# - 编写适当的正则表达式以允许数字和字母和数字的组合混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47063322/

相关文章:

php - 最多匹配 x 正则表达式或 y 正则表达式

c# - 没有锁的线程安全集合

c# - MVC 应用程序中的授权和身份验证

c# - jquery AJAX 和 web 服务使用 onchange 作为下拉列表

javascript - 多次环顾并忽略内部标签

TCL中的正则表达式怪癖

c# - View style设置为Details时如何在Winforms ListView中显示图标和文字?

c# - 在 C# 中,私有(private)成员变量或构造函数首先触发什么,为什么?

c# - 在 html 属性中输入不同颜色的文本

asp.net - 如何在 ASP.NET Core 中获取当前登录的用户 ID?