我有一个字符串示例,如下所示:
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/