Okay, so I am new to regex, or at least to actually writing them, but here is what I have:
The reference string:
The regex (that is not working as expected):
What I want to return:
By my understanding (which is obviously not correct) I was under the impression that if I included ?: for a captured group it would not return it in the match; and likewise, I do not want to return \ before the , in the middle of the name – which I actually do not know how to exclude a character in a returned result as such. Anyone able to shine some light on the matter?
If you want a non-named capture group, enclose what you want in parentheses. If you want a named capture group, use this syntax. (?'name'regex)
$string = 'LDAP://CN=Doe\, John,OU=Users,DC=my,DC=domain' $string -match 'LDAP://CN=(.*),OU=Users' ; $Matches –replace '\\' True Doe, John
$string = 'LDAP://CN=Doe\, John,OU=Users,DC=my,DC=domain' $string -match "LDAP://CN=(?'name'.*),OU=Users" ; $Matches['name'] –replace '\\' True Doe, John
Nice! Easy to read and to the point. Thank you very much.
(?:pattern) is, really, a non capturing group. If you post just the pertinent part of your code, we'll be able to clarify your misunderstanding.
You must be logged in to reply to this topic.