c# - 如何检测字符串中是否存在非拉丁字符?

标签 c#

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

编辑

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

最佳答案

你可以使用正则表达式:

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

它适用于所有不同于 a 的字母至 zAZ .

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

非正则表达式解决方案

您也可以使用 LINQ,因为 string工具 IEnumerable<char> :

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

关于c# - 如何检测字符串中是否存在非拉丁字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19871564/

相关文章:

c# - Polly 重试除特定条件外的所有异常

c# - 命名空间 'Optimization' 中不存在类型或命名空间名称 'System.Web'

c# - 在使用 Mono 运行的 C# 应用程序中更改当前 Linux 用户?

c# - 在 C# 中集成 Powershell

c# - 从 C# 中调用 StrFormatByteSize64 函数

c# - 泛型 ListView 自定义控件

c# - Mahapps Metro WPF 风格在类库中不起作用

c# - 在检查 http 状态代码时收到错误消息 - 远程服务器返回错误 : (503) Server Unavailable

c# - 删除 list<string> 中的所有字母并对其进行排序

C# - 将对象的字段分配为对另一个对象字段的引用(如指针)