我需要用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)字符。