Jeg har en hard tid regexing disse dataene til å trekke navn

stemmer
-1

CN = Cal Sith / O = SEL, CN = Scot Shaf / O = SEL

Strengen ser slik ut, og det kan være mer enn 2 grupper komma separert.

Dette er så nær som jeg får, men feil:

((: [A-ZA-Z =] + [^ a-zA-Z '-] +) {0,12}) / O = SEL

Vennligst hjelpe noen regex guru!

Publisert på 02/09/2018 klokken 05:19
kilden bruker
På andre språk...                            


2 svar

stemmer
1

For å få navnene fra følgende streng: CN = Cal Sith / O = SEL, CN = Scot Shaf / O = SEL

Prøv med under Snippet:

        string sPattern = @"(?:[a-z=]+)=(?<Name>[a-z\s]+)\/O=SEL";
        Regex oRegex = new Regex(sPattern,RegexOptions.IgnoreCase);
        string sInput = "CN=Cal Sith/O=SEL,CN=Scot Shaf/O=SEL";
        List<string> FullNames = new List<string>();
        foreach (Match oData in oRegex.Matches(sInput))
        {
            FullNames.Add(Convert.ToString(oData.Groups["Name"]));
        }
Svarte 02/09/2018 kl. 06:08
kilden bruker

stemmer
0

Du kan bruke en positiv lookbehind ?<=\bCN=) å hevde hva som foregående er CN=og bruke en negativ karakter klasse [^/]+ å matche ikke en skråstrek én eller flere ganger:

(?<=\bCN=)[^/]+

regex demo

string pattern = @"(?<=\bCN=)[^/]+";
string input = @"CN=Cal Sith/O=SEL,CN=Scot Shaf/O=SEL";
List<String> FullNames = Regex.Matches(input, pattern)
    .Cast<Match>()
    .Select(match => match.Value)
    .ToList();

c # Demo

Svarte 02/09/2018 kl. 12:46
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more