我需要的,如果给定的文本是英文还是不能够检测一个正则表达式,但我要包括以下内容:英语正则表达式在C#
- 允许空间
- 允许数字和文字 !
- 允许多个线和标签
- 允许所有特殊字符@#$%^ * &()_- + = {} |/<>〜`“:”[]
- 允许的URL,邮件
- 如果给定的文本包含任何字符而不是英文,则应该将其视为非英文文本,如果文本包含阿拉伯字母/单词(如“ابت...等”),并且相同法语“é,â€等”以及所有其他语言
简而言之,我需要知道给定的文本(任何格式的文本)是否使用英文。我尝试了很多模式,但我没有得到它,实际上,我不需要使用任何语言检测器,因为应用程序将脱机使用。文本的
样品不应被接受:
您好! ... E
مرحبابك
للتحميلاضغطهنا... http://www.google.com
所以,如果文本中包含非英文字母,它应被视为非英语文本。
顺便说一句,我尝试使用以下模式 “\ p {IsArabic}”,“^ [A- zA-Z0-9&。\:/ - ] + $“,”^ [\ x20- \ x7E] + $“,”[A-Za-z0-9。, - = +(){}!@#$ %^&* _ [\] \\]“...但是都给了我不正确的结果。 –
咖啡厅虽然是一个英文单词,但许多语言的文字都是用英文表示的字符......无论如何,请查看Unicode类别。您可以检查不是a-z的字母字符。 – Ryan
你正在从正则表达式中请求waaaaay太多,并且在一定程度上简化了对语言的检测。 ***这不是正则表达式。***真的。为什么不加载[英文单词列表](http://www-01.sil.org/ linguistics/wordlists/english/wordlist/wordsEn.txt)并比较文字中有多少单词是匹配的? – spender