如何检测字符串中非拉丁字符的存在?

时间:2013-11-09 02:06:34

标签: c#

我想将包含非拉丁字符的所有文件名更改为随机唯一的拉丁字符串。但是如何检测原始文件名中是否存在非拉丁字符?

修改

非拉丁字符可能是中文,日文,韩文,阿拉伯文,变音字符等字符。

1 个答案:

答案 0 :(得分:8)

您可以使用正则表达式:

if(Regex.IsMatch(input, "[^a-zA-Z]"))
{
    // non-latin found
}

它适用于与azAZ不同的每个字母。

如果您还想允许数字,请使用以下内容:[^a-zA-Z0-9]

非正则表达式解决方案

您也可以使用LINQ,因为string实现了IEnumerable<char>

if(input.ToLower().Any(c => c <= 'a' || c >= 'z'))
{
    // non-latin found
}