Azure SCIM连接器正则需求:从多域名UPN提取用户名
处理多域名场景下的UPN/邮箱用户名提取
嘿,作为正则新手碰到多域名的情况确实有点懵,别担心,这个需求其实用一个简单的正则就能轻松搞定!
核心思路很直白:我们只需要匹配@符号以及它后面的所有内容,然后把这部分替换成空字符串就行——不管后面跟着什么域名,都能一次性处理掉。
通用正则表达式
你需要用到的正则是:@.*$
@:字面匹配邮箱/UPN里的@符号,精准定位分割点.*:贪婪匹配任意数量的任意字符(除换行符),确保能覆盖从@到结尾的所有域名内容$:匹配字符串的结尾,保证我们不会漏掉域名的任何部分(比如多级域名company.co.uk这种也能全匹配)
不同工具中的实现示例
根据你之前用的Replace函数风格,我给你几个常见场景的具体写法:
- PowerShell:
$userPrincipalName = "first.last@domain1.com" $username = $userPrincipalName -replace '@.*$', '' # 输出结果:first.last - Power Automate(或类似低代码工具):
把原Replace参数替换成:Replace([userPrincipalName], '@.*$', '') - JavaScript:
const email = "john@any-domain.org"; const username = email.replace(/@.*$/, ''); - Python:
import re upn = "jane.doe@company.co.uk" username = re.sub(r'@.*$', '', upn)
测试验证
不管你的UPN是first.last@domain1.com、john@any-domain.org还是jane.doe@company.co.uk,用这个正则处理后,都能准确提取出前面的用户名部分。
这个正则足够应对绝大多数标准的UPN/邮箱场景,毕竟标准的UPN和邮箱只会有一个@符号,完全不用担心匹配出错~
内容的提问来源于stack exchange,提问作者jimjim1
相关产品推荐
相关产品推荐

