C# C语言中的英语正则表达式#
我需要一个正则表达式模式,它可以检测给定文本是否为英语,但我希望包括以下内容:C# C语言中的英语正则表达式#,c#,regex,C#,Regex,我需要一个正则表达式模式,它可以检测给定文本是否为英语,但我希望包括以下内容: 允许空间 允许数字和文字 允许多行和多个选项卡 允许所有特殊字符!@$%^&*():“;[] 允许URL、电子邮件 如果给定文本包含任何字符而非英语,则应将其视为非英语文本,如果文本包含阿拉伯文字母/单词,如“ابت…”,则应使用此选项。。。等等,“法语”也是如此,比如。。。以及所有其他语言 简言之,我需要知道给定的文本(任何格式的文本)是否为英语。我尝试了很多模式,但没有得到它,实际上,我不需要使用任何语言检测
- 允许空间
- 允许数字和文字
- 允许多行和多个选项卡
- 允许所有特殊字符!@$%^&*():“;[]
- 允许URL、电子邮件
- 如果给定文本包含任何字符而非英语,则应将其视为非英语文本,如果文本包含阿拉伯文字母/单词,如“ابت…”,则应使用此选项。。。等等,“法语”也是如此,比如。。。以及所有其他语言
@"[^\t\w\d\s$-/:-?{-~!"^_`\[\]]+"
如果存在匹配项,则存在非英语字母/字符
顺便说一句,你只是测试文本是否只包含说英语的人通常会使用的字符,而不是它所使用的语言。
要检测一种语言,您需要自然语言处理之类的东西,但不需要正则表达式。理论上,如果正则表达式包含英语词典中的每个单词,这是可能的
您可以创建一个检测非英语字符的正则表达式。该正则表达式将检测肯定不是英语的文本,但无法确认它肯定是英语的。我想我找到了,我尝试了基本的拉丁Unicode分类,到目前为止效果很好。我使用了:
"^[\u0000-\u007F]+$"
它的想法是检查给定的文本是否是英文的,并且只使用英文字母书写,此外,它还允许使用特殊字符“,它被视为非英文文本,因为给定的文本应仅包含英文字母,并且即使键入名称、地点,也应避免任何其他字母。”。。。等等。这正是我需要的。谢谢大家
资源:
\s
已经匹配了tab(和空格/换行符),而且\w
已经匹配了数字,所以您不需要\t
或\d
@swaver2112 yearight@ed9w2in6它不太管用我想这个“[\u0000-\u007F]+$”可能会管用,因为它检查所有的基本拉丁字符和特殊字符,如果有其他字符,它被认为是不匹配的。。。我说的对吗?真的很有帮助。非常感谢。