有没有办法确定C#中的字符串是否不包含数字&;字符0-9和A-Z?

有没有办法确定C#中的字符串是否不包含数字&;字符0-9和A-Z?,c#,C#,我见过一些正则表达式测试,但如何检查字符串是否不包含任何0-9数字或a-Z字符?您不需要正则表达式: string s = ... bool hasLetterOrDigit = s.Any(c => char.IsLetterOrDigit(c)); bool onlyLetterOrDigit = s.All(c => char.IsLetterOrDigit(c)); isleterOrdigit()函数使用Unicode分类() 如果您想要精确控制: string s =

我见过一些正则表达式测试,但如何检查字符串是否不包含任何0-9数字或a-Z字符?

您不需要正则表达式:

string s = ...
bool hasLetterOrDigit = s.Any(c => char.IsLetterOrDigit(c));

bool onlyLetterOrDigit = s.All(c => char.IsLetterOrDigit(c));
isleterOrdigit()
函数使用Unicode分类()

如果您想要精确控制:

string s = ...
string allowedChars = "abcdefABCDEF0123456789";

bool onlyAllowedChar = s.All(c => allowedChars.Contains(c));

您不需要正则表达式:

string s = ...
bool hasLetterOrDigit = s.Any(c => char.IsLetterOrDigit(c));

bool onlyLetterOrDigit = s.All(c => char.IsLetterOrDigit(c));
isleterOrdigit()
函数使用Unicode分类()

如果您想要精确控制:

string s = ...
string allowedChars = "abcdefABCDEF0123456789";

bool onlyAllowedChar = s.All(c => allowedChars.Contains(c));
类似于

if ((Regex.IsMatch(value, "[^A-Z0-9]+")
{
   //do something
}
编辑:更改为符合Matt的建议。

类似于

if ((Regex.IsMatch(value, "[^A-Z0-9]+")
{
   //do something
}
编辑:更改为符合Matt的建议。

使用

试着用



用正则表达式!你看到了什么?任何数字或字母,或者确切地说是你列出的那些?任何大小写或仅大写字母?Marilou,
ö
是否是字母?它必须不是字母。我想知道我的字符串是否有0-9和A-Z以外的任何组合。在这种情况下,
IsleterOrdigit()
可能不是正确的筛选器。使用正则表达式!你看到了什么?任何数字或字母,或者确切地说是你列出的那些?任何大小写或仅大写字母?Marilou,
ö
是否是字母?它必须不是字母。我想知道我的字符串是否包含除0-9和A-Z之外的任何组合。在这种情况下,
IsleterOrdigit()
可能不是正确的筛选器。但我想检查字符串中是否有非大写字母或数字的内容。尽管这很好,而且非常有效,
IsleterOrdigit
包含哪些字母?我假设MSDN中不仅有
“A-Z”
,还有小写字母等:大写字母、小写字母、标题字母、修饰字母、其他字母或DecimalDigitNumber@TimSchmelter:不仅包括小写字母,还包括世界上每一个Unicode字母。不仅仅是[A..Z]。@TimSchmelter-你是对的,“最佳”解决方案将取决于环境和用例。但是
Any()
方法很容易适应。我已经编辑了。但是我想检查字符串中是否有非大写字母或数字的内容。虽然这很好而且非常有效,但是
IsleterOrdigit
包含哪些字母?我假设MSDN中不仅有
“A-Z”
,还有小写字母等:大写字母、小写字母、标题字母、修饰字母、其他字母或DecimalDigitNumber@TimSchmelter:不仅包括小写字母,还包括世界上每一个Unicode字母。不仅仅是[A..Z]。@TimSchmelter-你是对的,“最佳”解决方案将取决于环境和用例。但是
Any()
方法很容易适应。我已经编辑了.or
(Regex.IsMatch(value,“^[A-Z0-9]”)
您不需要
如果!
,Regex开头的
^
表示与这些字符中的任何字符都不匹配。很抱歉,我的错,应该是
[^A-Z0-9]+
@Key。我想知道我的字符串是否包含0-9和A-Z的任何组合以外的内容。如果我的字符串包含一个“g”,使用正则表达式会被视为不匹配吗?@Marilou如果字符串必须只包含非A-Z或0-9的字符,则使用此正则表达式
^[^A-Z0-9]+$
(Regex.IsMatch(value,“^[A-Z0-9]”)
您不需要使用
if!
,正则表达式开头的
^
表示与这些字符中的任何字符都不匹配。很抱歉,我的错,它应该是
[^A-Z0-9]+
@键。我想知道我的字符串是否有0-9和A-Z的任何组合。如果我的字符串包含“g”使用正则表达式会认为不匹配吗?@Marilou如果字符串必须只包含非a-Z或0-9的字符,则使用此正则表达式
^[^a-Z0-9]+$
抱歉,但我想确定是否存在非0-9和A-Z的内容。我认为您的代码会以另一种方式查找匹配。对..找到它..谢谢更正..抱歉,但我想确定是否存在非0-9和A-Z的内容。我想您的代码会以另一种方式查找匹配。对..找到它..谢谢更正。。