RegEx 使用 RegEx 替换 Azure AD SAML 转换

问题描述 投票:0回答:1

长期潜伏者,第一次海报:-)

我遇到一个问题,我们的供应商似乎不接受连字符 (-) 和撇号 (') 等特殊字符。这是复数吗?

因此,在我们的 Azure Active Directory SAML 声明中,我需要删除连字符和撇号,并将其全部集中在一起作为声明发送。

我在尝试让此正则表达式替换工作时遇到问题。

如果用户的电子邮件地址中包含连字符或撇号,则在发送索赔时需要将其删除。

电子邮件索赔示例:

[email protected]

预期转换声明/输出示例:

BobSacamentoWilliams

当前设置:

转变:

RegExReplace ()

属性:

user.mail

正则表达式模式:

(?'mail'^.*?)(?i)(@.*)$

更换图案:

{mail}

电流输出:

BobSacamento-Wiliams

我不知道在哪里使用

[^-'] 

在正则表达式模式部分中提取除连字符和撇号之外的所有内容,或者我是否应该创建二次转换来纠正主要输出。微软似乎没有使用任何其他网站上有意义的语法,而且他们的文档很糟糕。

如果您可以私信我解决方案,我可以通过加密货币使其变得有价值。我愿意付钱。我在这里碰壁了。

我试过了 电子邮件声明示例(输入):

[email protected]

正则表达式模式:

(?'mail'^.*?)(?i)(@.*)$

并收到:

电流输出:

BobSacamento-Wiliams

但我希望/需要删除连字符和撇号并像这样加入:BobSacamentoWilliams

regex azure-active-directory azure-powershell regex-replace
1个回答
0
投票

您可以使用以下正则表达式并将其替换为空字符串。

[-_`]|(@.*)

它会拾取所有不需要的字符,例如下划线、连字符等,还有它正在删除域名,因此您剩下的只是“BobSacamentoWiliams”。检查下面的快照

© www.soinside.com 2019 - 2024. All rights reserved.