正则表达希伯来语,英语,符号

ian*_*an 5 c# regex detect

作为我编写的小程序的一部分,我需要过滤一个字符串输入,可能是"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"之后的所有字符都是希伯来语

oCc*_*ing 5

对于希伯来字母,在C#中你可以做这样的事情:

return System.Text.RegularExpressions.Regex.IsMatch(value, @"^[?-?]+$");
Run Code Online (Sandbox Code Playgroud)

享受=)


Cas*_*yte 3

您可以使用\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} 代表所有标点符号(据我所知.,?!:;-_(){}[]\/'"&#@%*:)