Regex O365 DLP自定义正则表达式

Regex O365 DLP自定义正则表达式,regex,o365security-compliance,Regex,O365security Compliance,我正在尝试创建一个自定义正则表达式来检测O365 DLP中的社会安全号码。条件是前三位数字不应以000、666或150开头,最后四位数字不应以0000结尾。因此我提出了下面的正则表达式 (?!000 | 666 | 150)\d{3}-\d{2}-(?!0000)\d{4}-这工作很好 需要解决的问题: 如果我想排除以单词开头的相同模式,比如说苹果:173-12-9878或内容:173-12-9878,我尝试将该单词添加到负面前瞻中,如 (?!苹果:|内容:)(?!000 | 666 | 150

我正在尝试创建一个自定义正则表达式来检测O365 DLP中的社会安全号码。条件是前三位数字不应以000、666或150开头,最后四位数字不应以0000结尾。因此我提出了下面的正则表达式

(?!000 | 666 | 150)\d{3}-\d{2}-(?!0000)\d{4}-这工作很好

需要解决的问题: 如果我想排除以单词开头的相同模式,比如说苹果:173-12-9878或内容:173-12-9878,我尝试将该单词添加到负面前瞻中,如 (?!苹果:|内容:)(?!000 | 666 | 150)\d{3}-\d{2}-(?!0000)\d{4},但我无法获得此工作

请提供建议,并建议是否有更好的方法来实现这一点。谢谢。

使用带有lookback的正则表达式:

\b(?)?
看

(?反向查找将阻止
Apple:
Content:
之后的匹配

注意
\b
是单词边界,它将禁止匹配比预期更长的数字。

使用带lookback的正则表达式:

\b(?)?
看

(?反向查找将阻止
Apple:
Content:
之后的匹配

注意
\b
是单词边界,它将不允许匹配比预期更长的数字

\b(?<!Apple: |Content: )(?!0{2}|666|150)\d{3}-\d{2}-(?!0{4})\d{4}\b