2016-07-12 9 views
0

現在、雲、オフィス365上のMicrosoft Exchangeでのデータ損失防止(DLP)機能の実装を実装しています。パターンを作成して、 "X12345789"組織の外部にあるメールの添付ファイルを確認する組織。今私はX\d{9}を使用してテストし、正常に動作します。しかし、私の要件は、特定のファイルで20以上のパターン出現を照合することです。例えばのためにパターンの一致をカウントするためのRegex構文

:ファイルには、情報の下に含まれている場合

X123456789 
X234561285 
X873674335 
X555234922 
X112233445 

..andようにカウントが20以上にあるまで、そして唯一の行動を取ります。

この要件に基づいて正規表現を作成できますか?

現在、すべてのパターンマッチで応答が得られています。私はトランザクションで渡すバルク情報にのみ興味があります。

また、正規表現では、Excelで使用されているスペースやコンマを含む他のテキストデータを無視する必要があります。例えばのために : また

以下X123456789 ergeiが6284201245 HRをslovaようなフォーマットは、TA

+0

必ずしも一致が必要なわけではない場合は、Regex検索パターンをさらに別のグループに含めることができます。 '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オブジェクトへのすべてのマッチを入れます。

関連する問題