首页 > 解决方案 > 正则表达式在字符串中查找用户 UPN

问题描述

我想在各种字符串中找到用户主体名称,以便 C# 工具匿名化客户特定数据。

我找到了这个:

(?[^@]+)@(?(?:[a-z0-9]+.)+[az]+)

但是在这样的字符串中:

f-4af0-86e8-01439a0ae52a\",,\"活动\",\"10/30/2018 9:05:35 AM\",\"SingleSession\",\"桌面\",,\"10/ 29/2018 下午 2:35:06\",,\"655952\",\"DOM\na010318\",\"na010318\",\"DOM\n010318\",\"S-1-5-21 -2052699199-3915784498-1582209984-1157056\",\" user.a@domain.acc.local \",\"Primary\",\"c46b084c-6df3-47dd-9d3e-8e17f855c7fe\""

它匹配 UPN 之前的整个部分(第一个空格,因为它匹配我猜的单词。

如何重新编写正则表达式以仅在此字符串中找到电子邮件/UPN?

谢谢

标签: c#regex

解决方案


如果 UPN 实际上具有与电子邮件地址相同的格式 - 请尝试以下问题的一些答案:

正则表达式从字符串中提取电子邮件

以下正则表达式适用于您的示例:

([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)

https://regex101.com/r/ijG8Xr/2


推荐阅读