我想将包含非拉丁字符的所有文件名更改为随机唯一的拉丁字符串。但是如何检测原始文件名中是否存在非拉丁字符?
非拉丁字符可能是中文,日文,韩文,阿拉伯文,变音字符等字符。
答案 0 :(得分:8)
您可以使用正则表达式:
if(Regex.IsMatch(input, "[^a-zA-Z]"))
{
// non-latin found
}
它适用于与a
到z
和A
到Z
不同的每个字母。
如果您还想允许数字,请使用以下内容:[^a-zA-Z0-9]
。
非正则表达式解决方案
您也可以使用LINQ,因为string
实现了IEnumerable<char>
:
if(input.ToLower().Any(c => c <= 'a' || c >= 'z'))
{
// non-latin found
}