Skip to main content
 首页 » 编程设计

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

2024年02月27日31telwanggs

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

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 .