3

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

编辑

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

4

1 回答 1

8

你可以使用正则表达式:

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

它适用于每个不同的字母 then atozAto Z

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

非正则表达式解决方案

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

if(input.ToLower().Any(c => c <= 'a' || c >= 'z'))
{
    // non-latin found
}
于 2013-11-09T02:10:40.263 回答