2016-07-12 56 views
0

我目前正在實施Microsoft Exchange on Office,Office 365中內置的數據丟失防護(DLP)功能。我需要創建一個模式,讓我們說「X12345789」,它對組織檢查組織外部的郵件附件。現在我已經測試使用X\d{9},它工作正常。但是,我的要求是在特定文件中匹配超過20個模式。用於計算模式匹配發生的正則表達式語法

對於e.g:如果文件中包含以下信息,

X123456789 
X234561285 
X873674335 
X555234922 
X112233445 

..和以此類推,直到計數大於20,則只能採取行動。

根據此要求可以創建正則表達式嗎?

目前我收到每個單一模式匹配的回覆。我只對交易中的批量信息傳遞感興趣。

此外,正則表達式應忽略其他文本數據,使用Excel中使用的空格或逗號。 對於如: 還應檢測,即使格式如下

X123456789 ergei slova 6284201245 HR,TA

+0

如果您不一定需要匹配,則可以在另一個組中包含您的正則表達式搜索模式。像'Regex.IsMatch(input,「(X \ d {9}){20}」)'類似的東西,如果它們都是連續的,就可以工作。如果它們不一定是連續的,你可以做一些像'Regex.IsMatch(input,「(X \ d {9} [^(X \ d {9})] *){20}」)' – Meloviz

+0

@Meloviz第二個人做了這個伎倆。非常感謝! – Bijesh

+0

很高興我可以幫助:) – Meloviz

回答

0

假設你有你的正則表達式的配置和設置使用Regex類,這應該是非常簡單。

MatchCollection matches = regex.Matches(myString); // assumes regex is Regex regex = Regex(pattern) 
// OR 
MatchCollection matches = Regex.Matches(myString, myPattern); 
if(matches.Count > 20) 
{ 
    /* Do something */ 
} 

這基本上會檢查您的輸入,並把所有的比賽中它可以用來做任何你需要匹配的令牌做MatchCollection對象。