在char上使用Regex.match

时间:2014-02-13 16:43:16

标签: c# asp.net regex

我如何使用例如这一行:

Regex.Matches(str,@"[a-zA-Z]");

而不是str我会有一个char?

3 个答案:

答案 0 :(得分:3)

似乎你想测试角色是否是一个字母。您不需要正则表达式来执行此操作。相反,您可以使用以下内容:

var isLetter = Char.IsLetter(ch);

但是,对于所有UNICODE字母,这将返回true,而不仅仅是A-Z,例如还有像É和其他字母一样的字母,如Æ和你。

如果您只想测试A-Z(大写和小写),您可以使用这个简单的测试:

var upperCaseCh = Char.ToUpperInvariant(ch);
var isLetter = 'A' <= upperCaseCh && upperCaseCh <= 'Z';

答案 1 :(得分:1)

我宁愿使用char类的静态函数或使用比较运算符,即

var test = 'a' <= c && c <= 'z';

静态方法可以为您提供字符类,例如字母,数字或空格。

答案 2 :(得分:0)

你可以在角色上调用ToString然后使用它:

char ch = 'c';
Regex.Matches(ch.ToString(),@"[a-zA-Z]");