我想将所有包含非拉丁字符的文件名更改为随机唯一的拉丁字符串。但是如何检测原始文件名中是否存在非拉丁字符呢?
编辑
非拉丁字符可能是中文、日文、韩文、阿拉伯文、umlaut等字符。
非拉丁字符可能是中文、日文、韩文、阿拉伯文、umlaut等字符。
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
}
A-z
。例如这个 -Ä
。 - T.S.