如果我能检查字符串是否有无效字符:
Regex r = new Regex("[^A-Z]$");
string myString = "SOMEString";
if (r.IsMatch(myString))
{
Console.WriteLine("invalid string!");
}
Run Code Online (Sandbox Code Playgroud)
没事.但是我想打印出这个字符串中的每个无效字符?就像在例子中SOMEString =>无效的字符是t,r,i,n,g.有任何想法吗?
使用LINQ.下面将给出一个包含5个元素的数组,与正则表达式不匹配.
char[] myCharacterArray = myString.Where(c => r.IsMatch(c.ToString())).ToArray();
foreach (char c in myCharacterArray)
{
Console.WriteLine(c);
}
Run Code Online (Sandbox Code Playgroud)
输出将是:
t
r
i
n
g
Run Code Online (Sandbox Code Playgroud)
编辑:
看起来,您希望将所有小写字符视为无效字符串.你可以尝试:
char[] myCharacterArray2 = myString
.Where(c => ((int)c) >= 97 && ((int)c) <= 122)
.ToArray();
Run Code Online (Sandbox Code Playgroud)