我需要使用 REGEX 从我的专有名称中提取“OU”部分。
例如:
"CN=DAVID Jean Louis (a),OU=Coiffeur,OU=France,DC=Paris,DC=France"
"CN=PROVOST Franck,OU=Coiffeur,OU=France,DC=Paris,DC=France"
"CN=SZHARCOFF Michel (AB),OU=Coiffeur_Inter,OU=France,DC=Paris,DC=France"
我需要
"OU=Coiffeur,OU=France"
"OU=Coiffeur,OU=France"
"OU=Coiffeur_Inter,OU=France"
我尝试 "CN=SZHARCOFF Michel (AB),OU=Coiffeur_Inter,OU=France,DC=Paris,DC=France"-match "^CN=[\w-()]*[\w ]*"
但是没有成功
最佳答案
您可以将所有 OU=
+ 1 个或多个非逗号子字符串与 \bOU=[^,]+
正则表达式匹配,然后将它们与 连接,
:
$matches = [regex]::matches($s, '\bOU=[^,]+') | % { $_.value }
$res = $matches -join ','
第一个字符串的输出:
OU=Coiffeur,OU=France
图案细节
\b
- 仅匹配OU
作为整个单词的单词边界OU=
- 文字子串[^,]+
- 1 个或多个 (+
) 个字符(因为[^...]
是 negated character class ) 一个逗号。
请参阅 regex demo。
关于REGEX - 从专有名称中提取 OU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51761894/