作为我编写的小程序的一部分,我需要过滤一个字符串输入,可能是"gibrish"(UTF8中的任何符号)输入可以是希伯来语和/或英语,但也有所有正常的标志,如:?%$ !@'_' 等等...
一位朋友建议使用正则表达式,但由于我使用它的经验不足,我来找你咨询.
如何创建一个C#函数来检查输入文本,如果它不是"正确"则返回false
到目前为止,我的尝试是:
public static bool shortTest(string input)
{
string pattern = @"^[??????????????????????????a-zA-Z0-9\_]+$";
Regex regex = new Regex(pattern);
return regex.IsMatch(input);
}
Run Code Online (Sandbox Code Playgroud)
"["和"a"之后的所有字符都是希伯来语
对于希伯来字母,在C#中你可以做这样的事情:
return System.Text.RegularExpressions.Regex.IsMatch(value, @"^[?-?]+$");
Run Code Online (Sandbox Code Playgroud)
享受=)
您可以使用\p{IsHebrew}字符类而不是枚举所有希伯来语字符,\w 表示 [a-zA-Z0-9_],\s 表示空格、制表符、换行符。您也可以添加点、逗号...示例:
^[\p{IsHebrew}\w\s,.?!;:-]+$
Run Code Online (Sandbox Code Playgroud)
或者
^[\p{IsHebrew}\w\s\p{P}]+$
Run Code Online (Sandbox Code Playgroud)
\p{P} 代表所有标点符号(据我所知.,?!:;-_(){}[]\/'"&#@%*:)