2016-07-12 4 views
0

현재 Office 365 클라우드의 Microsoft Exchange에서 DLP (데이터 손실 방지) 기능을 내장하고 있습니다. "X12345789"라고하는 패턴을 만들어야합니다. 조직 외부의 메일 첨부 파일을 확인합니다. 이제 X\d{9}을 사용하여 테스트했으며 제대로 작동합니다. 그러나 필자의 요구 사항은 특정 파일에서이 패턴 발생을 20 개 이상 일치시키는 것입니다. 예컨대 들어패턴 일치 발생에 대한 Regex 구문

: 파일은 다음 정보가 포함되어있는 경우

X123456789 
X234561285 
X873674335 
X555234922 
X112233445 

.. 그리고 등등 카운트가 20 인까지, 만 조치를 취할 수 있습니다.

이 요구 사항을 기반으로 정규 표현식을 만들 수 있습니까?

현재 모든 단일 패턴 일치에 대한 응답을 얻고 있습니다. 나는 대량 정보 전달에만 관심이있다.

또한 regex는 Excel에서 사용되는 공백이나 쉼표가있는 다른 텍스트 데이터를 무시해야합니다. 예를 들어 : 형식은 모든 구성과 Regex 클래스를 사용하여 설정 정규 표현식을 가정 ergei은 6,284,201,245 HR을 slova

X123456789

, 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

아래와 같은 경우 또한도 감지합니다,이 있어야한다 꽤 직설적 인.

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 객체의 모든 경기를 넣어 것입니다.