gpt4 book ai didi

c# - 正则表达式获取匹配后的文本,该文本必须是最后一次出现

转载 作者:太空狗 更新时间:2023-10-30 01:14:31 26 4
gpt4 key购买 nike

我想在 C# 应用程序中使用正则表达式提取最后一次出现“cn=”之后的字符串。所以我需要的是 last occurence of "cn="和 \ 字符之间的字符串 请注意,源字符串可能包含空格。

示例:

ou=公司\ou=国家\ou=站点\cn=办公室\cn=名字\ou=宠物

结果:

姓名

到目前为止我得到了(?<=cn=).*使用正后视和 (?:.(?!cn=))+$ 选择 cn= 之后的文本找到最后一次出现,但我不知道如何将它组合在一起以获得所需的结果。

最佳答案

您可以尝试使用以下正则表达式 ...

(?m)(?<=cn=)[\w\s]+(?=\\?(?:ou=)?[\w\s]*$)

参见 regex demo

C# ( demo )

using System;
using System.Text.RegularExpressions;

public class RegEx
{
public static void Main()
{
string pattern = @"(?m)(?<=cn=)[\w\s]+(?=\\?(?:ou=)?[\w\s]*$)";
string input = @"ou=company\ou=country\ou=site\cn=office\cn=name\ou=pet";

foreach (Match m in Regex.Matches(input, pattern))
{
Console.WriteLine("{0}", m.Value);
}
}
}

关于c# - 正则表达式获取匹配后的文本,该文本必须是最后一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882641/

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