我搜索健壮方式将字符串解析为用户名和域名。以下字符串有效(在user name formats中指定):
请注意,我的应用程序必须脱机运行,无法验证任何服务。
编辑:我正在寻找.NET Framework中的一个类,它使用我的字符串构建一个用户对象,我可以用它来获取域名和用户名,就像{{{ 1}}将为我解析一个网址。
答案 0 :(得分:0)
你显然可以使用像RegEx这样的
([a-zA-Z_\-0-9]+)[\\@]{0,1}([a-zA-Z_\-0-9]+){0,1}
只有一个示例RegEx,不适用于具有.com
或类似结尾的域。
获取用户名和域名(如果存在)。我个人认为具有正则表达式的功能难以支持和管理,因为它们含有神秘的符号。如果你只限于3种符号,我会说你应该实现一个解析三种符号中的每一种的函数。
答案 1 :(得分:0)
以下内容应该有效。
static string ParseUserName(string logonName)
{
if (logonName.Contains('\\'))
{
var logonNameParts = logonName.Split('\\');
return logonNameParts[1];
}
if (logonName.Contains('@'))
{
var logonNameParts = logonName.Split('@');
return logonNameParts[0];
}
return logonName;
}