У меня отличные имена от объектов Active Directory, и мне нужно отфильтровать управляющие символы при разбиении этих цифр на простые имена.
У меня уже есть строка -split
PowerShell, но это не отфильтровывает escape-символы.Я пробовал регулярное выражение с положительным взглядом, но мне нужно в этом случае что-то вроде дополнительного положительного взгляда?Может быть, я просто думаю слишком сложно.
Примеры строк:
OU=External,OU=T1,OU=\+TE,DC=test,DC=dir
OU=\#External,OU=T1,OU=\+TE,DC=test,DC=dir
OU=\+External,OU=T1,OU=\+TE,DC=test,DC=dir
Поскольку +
и #
экранированы, но являются фактическими именами этих объектов, мне нужно удалить экранирующие символы
С помощью следующей оболочки PowerShell можно получить имяобъект
($variable -split ',*..=')[1]
Фактический результат:
External
\#External
\+External
Ожидаемый результат:
External
#External
+External
Возможно использоватьрегулярное выражение с $variable -creplace "REGEX"
, но я не могу найти регулярное выражение, которое соответствует всем этим случаям.
Моя попытка была: (?<=OU=\\).+?(?=,OU=)
, но она совпадает, если \
есть
Мне нужно это имя для создания объекта в Active Directory.