2012-01-31 2 views
-2

전자 메일 헤더의 참조 필드 뒤에 전자 메일 주소를 찾는 정규 표현식을 만들려고합니다. 필자는 문자열에 대한 프로그래밍 제어가 없으므로 특정 프로그래밍 언어에만 국한되지 않습니다. 문자열이 경우 내가 좋은 작품 정규 표현식을 만든문자열의 전자 메일 주소를 찾을 수있는 정규 표현식

Received: by hermit.cdu-staff.local 
    id <[email protected]>; Thu, 9 Feb 2012 13:57:14 +0930 
MIME-Version: 1.0 
Content-Type: multipart/alternative; 
    boundary="----_=_NextPart_001_01CCE6E3.19910AB8" 
Content-class: urn:content-classes:message 
X-MimeOLE: Produced By Microsoft Exchange V6.5 
Subject: Email header example 
Date: Thu, 9 Feb 2012 13:57:10 +0930 
Message-ID: <[email protected]> 
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Email header example 
Thread-Index: Aczm4xa7dGVpHUWERSSOuR8HCNmrAw== 
From: "Bishnu Paudel" <[email protected]> 
To: "Study" <[email protected]> 
Cc: "Cameron Loudon" <[email protected]> 

: 그것은

이메일 헤더는 다음과 같습니다 검색 조건의 일부 정규 표현식을 기대하고 일부 소프트웨어의 통합의 단지 부분 한 줄의 문자열 (헤더의 마지막 줄). 다음은 표현식입니다.

(^|,)\s*.*Cc:.*(bishnu.paudel|cameron.loudon)@company[.]com\s*($|,). 

도움이 될만한 내용이 있으면 감사하겠습니다.

답변

1

다음 정규식 정규식의 적응력 here를 제시하는 문제

\b[A-Z0-9._%+-][email protected]\b 

를 해결한다. '유효한'이메일 주소가 무엇인지에 대한 원본 웹 사이트의 의견에 유의하십시오.

+0

HI, 나는 마침내 정규 표현식을 구성하여 작업을 얻었다. ** Cc :. * <(student.admin | study | summer | midyear | changeyourworld) @ourcompany [.] com> ** 예 : 헤더와 일치 _To : <[email protected]> Cc : "studentadmin" [email protected]>, \t "Bishnu Paudel"<[email protected]> _ 그러나 대상 전자 메일 (student.admin)이 첫 번째 위치에 있지 않은 헤더와 일치하지 않습니다. 참조 필드 예 : _To : <[email protected]> 참조 : "Bishnu Paudel"<[email protected]>, \t "studentadmin"<[email protected]> _ –

0
당신은 당신이 사용하고 있지만, 일반적으로이 같은 기록 할 수있는 프로그래밍 언어를 지정하지 않은

: 그것은 시작의 앞에 있다고 제공

(^|,)\s*(admin|clients)@ourcompany[.]com\s*($|,) 

[email protected][email protected] 일치하거나 것입니다 -string 또는 쉼표 (선택적 공백 문자 포함)와 쉼표 또는 end-of-string (공백 (선택적) 포함)이 뒤에옵니다. 내가 올바르게 기억 전자 메일 주소가 실제로 예를 들어 — 꽤 복잡한 것을

참고 [email protected]"admin"@ourcompany.com는 — 그래서 나는주의 것 기술적으로 동일합니다 임시 구문 분석 방법의 종류 바람직하지 않을 수있다. (기본적으로, 나는 당신의 정규 표현식이 false positive 또는 false negative를 리턴한다면 얼마나 큰 문제인지 질문 할 것입니다. 결과에 대한 확신이 필요하다면,이 접근법은 아마도 갈 길이 아닙니다.)

+0

감사합니다. 정규식은 이메일 주소와 일치하지 않습니다.하지만 CC :, TO : 및 여러 가지가 포함 된 전자 메일 헤더에서 전자 메일 주소를 검색하는 정규식이 필요했습니다. 우리 이메일 주소 중 하나가 "CC :"가 뒤 따르는 이메일 문자열에 있는지 알아야합니다. 전자 메일 헤더는 문자열로 제공됩니다. 이 작업을 수행하기위한 프로그래밍 방식의 제어 기능이 없으므로 모든 프로그래밍 언어와 관련이 없습니다. –

+0

안녕 Ruakh, 전/후 또는 이메일 사이에 어떤 숫자의 문자와 일치하는 정규 표현식을 만들었고 우리의 이메일 주소를 고려할 것입니다. (^ |,) \ s *. * Cc :. * (bournu.paudel | cameron.loudon) @ourcompany [.] com \ s * ($ |,) 그러나 이것은 줄 바꿈 문자를 포함 할 문자열과 일치하지 않습니다. 어떤 아이디어라도 제발? –

+0

@BishnuPaudel : 기본적으로'.'는 "개행이 아닌 문자"를 의미하지만 개행과 일치해야한다고 지정할 수도 있습니다. 안타깝게도 아직 어떤 프로그래밍 언어가 지정되어 있지 않으므로 적절한 조언을하기가 어렵습니다. '(? s : ...) \ * * * Cc :. * (bishnu.paudel | cameron.loudon) '과 같이 정규식 전체를'(?) @ourcompany [.] com \ s * ($ |))'- 여러 언어로 작동합니다. – ruakh

0

이 정규 표현식을 구성하여 마침내 작동하게되었습니다. 예를 들어 헤더를 일치 Cc:.*<(student.admin|study|summer|midyear|changeyourworld)@ourcompany[.]com> :

To: <[email protected]> 
Cc: "studentadmin" <[email protected]>, "Bishnu Paudel" <[email protected]> 

하지만 대상 이메일 (student.admin)를 참조 필드의 첫 번째 장소는 그가에 있지 않은 곳이 헤더를 일치하지 않습니다. 예를 들면 :

To: <[email protected]> 
Cc: "Bishnu Paudel" <[email protected]>, "studentadmin" <[email protected]> 

건배, 틸

관련 문제