【发布时间】:2016-07-12 22:02:04
【问题描述】:
我目前正在 Microsoft Exchange on Cloud、Office 365 中实施内置数据丢失防护 (DLP) 功能。我需要创建一个模式,比如说“X12345789”,该模式对组织来说是敏感的,以检查发送到外部的邮件附件组织。现在我已经使用X\d{9} 进行了测试,它工作正常。但是,我的要求是在特定文件中匹配此模式的出现次数超过 20 次。
例如:如果文件包含以下信息,
X123456789
X234561285
X873674335
X555234922
X112233445
..等等直到计数超过20,然后才采取行动。
可以根据这个需求创建正则表达式吗?
目前,我收到了对每个模式匹配的响应。我只对事务中传递的批量信息感兴趣。
此外,正则表达式应忽略 excel 中使用的其他带有空格或逗号的文本数据。 例如: 即使格式如下,它也应该检测到
X123456789 ergei slova 6284201245 HR,TA
【问题讨论】:
-
如果您不一定需要匹配项,您可以将您的正则表达式搜索模式包含在另一个组中。如果它们都是连续的,像
Regex.IsMatch(input, "(X\d{9}){20}")这样的东西会起作用。如果它们不一定是连续的,你可以做类似Regex.IsMatch(input, "(X\d{9}[^(X\d{9})]*){20}") -
@Meloviz 第二个成功了。非常感谢!
-
很高兴我能帮上忙 :)
-
看起来给定的解决方案正在部分工作。如果我将文件作为“X584278522 abc Xyz 9871114717 ADCPA2029G abcxyz@yahoo.com”在电子邮件正文或电子表格中包含超过 20 行附件,模式匹配失败。任何人都可以在这里提供帮助。
标签: c# regex office365 predicate