gpt4 book ai didi

c# - 如何在 C# 中使用正则表达式从字符串中删除所有不需要的字符?

转载 作者:太空宇宙 更新时间:2023-11-03 22:41:23 24 4
gpt4 key购买 nike

我已经尝试过此处提供的解决方案 Regex Code Review但我似乎无法让它工作。这与我正在处理的情况完全相同。我还不熟悉正则表达式,但我想用它从字符串中删除字符“CN=”,然后删除字符串中第一个逗号之后的所有内容。例如,

CN=Joseph Rod,OU=LaptopUser,OU=Users,DC=Company,DC=local

成为

Joseph Rod

代码:

protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();

dt.Columns.AddRange(new DataColumn[5]
{
new DataColumn("givenName", typeof (string)),
new DataColumn("sn", typeof (string)),
new DataColumn("mail", typeof (string)),
new DataColumn("department", typeof (string)),
new DataColumn("manager", typeof (string))
});

using (var context = new PrincipalContext(ContextType.Domain, null))
{
using (var group = GroupPrincipal.FindByIdentity(context, "Users"))
{
var users = group.GetMembers(true);
foreach (UserPrincipal user in users)
{
DirectoryEntry de = user.GetUnderlyingObject() as DirectoryEntry;
dt.Rows.Add
(
Convert.ToString(de.Properties["givenName"].Value),
Convert.ToString(de.Properties["sn"].Value),
Convert.ToString(de.Properties["mail"].Value),
Convert.ToString(de.Properties["department"].Value),
Regex.Replace((Convert.ToString(de.Properties["manager"].Value)), @"CN=([^,]*),", "$1")
);
}
rgAdUsrs.DataSource = dt;
rgAdUsrs.DataBind();
}
}
}

然而,我的代码只是删除了“CN=”和第一个逗号。我还需要删除从第一个逗号到右边的所有内容。

上述代码的结果:

Joseph RodOU=LaptopUser,OU=Users,DC=Company,DC=local

如何修改正则表达式以同时删除逗号右侧的字符?

最佳答案

同时删除该行的其余部分

CN=([^,]*),.*$

然后替换为$1

Regex Demo

但是,如前所述,您实际上并不需要正则表达式来实现此目的。这将搜索第一个 = 和第一个 , 之间的字符串。

Console.WriteLine(input.Substring(input.IndexOf("=") + 1, input.IndexOf(',') - (input.IndexOf("=") + 1)));

关于c# - 如何在 C# 中使用正则表达式从字符串中删除所有不需要的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52083333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com