REGEX - 从专有名称中提取 OU

标签 regex windows powershell extract distinguishedname

我需要使用 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/

相关文章:

c++ - 如何在 Windows 中获取当前登录用户的域?

windows - 批量重命名文件夹结构

PHP 正则表达式将捕获组变量与数字结合起来

html - Postgresql——清理字符串中间的 HTML 标签

windows - Shlwapi.dll中的HashData是基于什么哈希算法?

azure - 如何读取在 RM 订阅上创建的云服务的服务配置 (.cscfg)

powershell - 在脚本文件夹中打开 Visual Studio Code Powershell 终端

powershell - 在 Powershell 中将管道分隔文件更改为逗号分隔

css - Gulp中如何匹配返回各种扩展名的文件?

JavaScript 正则表达式 : Replace |b| with <b>