我需要一个正则表达式模式,可以检测给定的文本是否是英文,但我想包含以下内容:
简而言之,我需要知道给定的文本,任何格式的文本是否都是英文的。我尝试了很多模式,但我没有得到它,实际上,我不需要使用任何语言检测器,因为应用程序将脱机使用。
不应接受的文本样本:
您好! ......é
مرحبابك
للتحميلاضغطهنا... http://www.google.com
因此,如果文本包含非英文字母,则应将其视为非英文文本。
答案 0 :(得分:1)
我想我找到了它,我尝试了Basic Latin Unicode类,到目前为止它工作得很好。我用过:
"^[\u0000-\u007F]+$"
它的想法是检查给定的文本是否是英文并且仅使用英文字母书写,此外,它允许特殊字符。因此,如果给定的文本是这样的“我在咖啡馆遇到了我的朋友”,它被认为是非英文文本,因为给定的文本应该只包含英文字母,并且即使键入名称,地点也要避免任何其他字母。 ..这正是我所需要的。
谢谢大家。
资源:
答案 1 :(得分:0)
这应该有效:
@"[^\t\w\d\s$-/:-?{-~!"^_`\[\]]+"
如果匹配,则有非英文字母/字符。
顺便说一句,你只是测试文本是否只包含英语人通常会使用的那些字符,而不是它所使用的语言。 要检测一种语言,你需要像自然语言处理这样的东西,而不是正则表达式。答案 2 :(得分:0)
理论上,如果正则表达式包含英语词典中的每个单词,都是可能的。
您可以创建一个检测非英文字符的正则表达式。这将检测绝对不是英语的文本,但无法确认它是肯定的。