【发布时间】:2015-07-09 00:15:47
【问题描述】:
我正在开发一个程序,我需要过滤非拉丁字符的单词和句子。问题是,我只找到了拉丁字符的单词和句子,但我没有找到混合了拉丁字符和非拉丁字符的单词和句子。例如,“Hello”是拉丁字母单词,我可以使用以下代码匹配它:
Match match = Regex.Match(line.Line, @"[^\u0000-\u007F]+", RegexOptions.IgnoreCase);
if (match.Success)
{
line.Line = match.Groups[1].Value;
}
但我没有发现例如与非拉丁字母词或句子混合的例子:“Hellø I am sømthing”。
另外,有人能解释一下 RegexOptions.None 或 RegexOptions.IgnoreCase 是什么以及它们代表什么吗?
【问题讨论】:
-
我一直认为
àèéìòù是拉丁语... -
而那个正则表达式不会找到
Hello,因为它只会找到> 0x7F的字符,所以它会很好ø -
@xanatos 确实如此。 Unicode 将 è 描述为带有 GRAVE 的拉丁小写字母 E。那么,BinaryTie,您是要包含还是排除此类拉丁字符?
-
@TomBlodget 。是的,我希望它包含非拉丁字符。我只需要过滤所有单词中包含非拉丁字符的单词。只能是非拉丁字符,也可以是拉丁字符与非拉丁字符的混合。
标签: c# regex ascii non-ascii-characters