캡처되지 않는 그룹 RegEx 내에서 이메일 주소 캡처

라일리 쿡

저는 정규식을 처음 사용했으며 비 캡처 그룹으로 구문 분석 할 특정 데이터 범위를 지정하고 캡처 그룹으로 해당 데이터를 필터링하는 방법에 대해 정말 고심하고 있습니다.

특히 Invoice2Data를 사용하여 pdf 송장을 구문 분석하고 내 구문 분석 템플릿에 대한 yaml 파일을 설정해야합니다. yaml 파일은 regex를 사용하여 invoice2data에 대한 구문 분석 템플릿을 설정합니다.

예를 들어 청구서가 있다고 가정합니다. 페이지에 여러 이메일 주소가 있지만 'Invoice for'다음에 오는 이메일 만 캡처하고 싶습니다.

Invoice for
John Doe
555 Nowhere Ave
[email protected]
555.555.5555

다음과 같이이 줄만 캡처 할 수 있다는 것을 알고 있습니다 (?i)For\s(?:^(?:.*\n){4}).

John Doe
555 Nowhere Ave
[email protected]
555.555.5555

문제는 예를 들어이 비 캡처 그룹을 구문 분석하여 이메일 만 캡처하는 방법을 모른다는 것입니다. 이메일을 찾기 위해이 정규식이 ([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)있지만 자체적으로 인보이스의 모든 이메일이 포함됩니다. 또 다른 문제는 모든 송장에 주소가있는 것은 아니므로 송장에 따라 실제 라인 번호가 다를 수 있다는 것입니다.

어떻게 혼합 않습니다 (?i)For\s(?:^(?:.*\n){4})([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)전용 송장의 특정 섹션에서 이메일을 끌어?

네 번째 새

부정적 미리보기를 사용하기 위해 Invoice for패턴 또는 |송장 과 같은 이메일 주소로 시작하지 않는 모든 행이 뒤에 일치하는 패턴을 사용할 수 있습니다.(?!

Invoice for미리보기에서 확인 하면 이메일 주소가 선택 사항 일 수 있으므로 이메일 주소가 잘못된 인보이스와 일치하는 것을 방지합니다.

그런 다음 특정 패턴을 사용하여 그룹 1 에서 이메일 주소를 캡처 합니다.

^Invoice for(?:\r?\n(?![^\s@]+@[^\s@]|Invoice for\b).*)*\r?\n([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)

Regex 데모

또는 부정적인 예견에서도 전체 이메일 패턴을 사용합니다.

^Invoice for(?:\r?\n(?![a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]|Invoice for\b).*)*\r?\n([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)

Regex 데모

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이전에 캡처되지 않은 이전 캡처 그룹을 기반으로 Regex를 일치시키는 방법이 있습니까?

분류에서Dev

캡처되지 않는 그룹이 C #에 표시됨

분류에서Dev

내 정규식이 여전히 캡처되지 않은 그룹을 캡처하고 있습니다.

분류에서Dev

PowerShell-명명 된 캡처 그룹이있는 Regex에 필요한 지원

분류에서Dev

C # Regex 캡처 그룹이 작동하지 않습니다.

분류에서Dev

그룹 내에서 대체 캡처를 사용하는 Perl RegEx 비 캡처 그룹

분류에서Dev

Powershell 단순 정규식 캡처 그룹이 캡처되지 않음

분류에서Dev

Javascript Regex-캡처되지 않은 그룹 제거

분류에서Dev

캡처되지 않은 그룹의 JS RegEx 대체?

분류에서Dev

Regex / Python-이 경우 비 캡처 그룹이 캡처되는 이유는 무엇입니까?

분류에서Dev

캡처 그룹을 노출하지 않는 REGEX 함수에 대한 대안이 있습니까?

분류에서Dev

이전 요소와 일치하는 그룹화 0 또는 1 회 캡처되지 않음

분류에서Dev

Regex는 캡처 그룹 외에 모든 것을 캡처합니다.

분류에서Dev

pos () 보고서가 캡처되지 않은 그룹과도 일치하는 이유는 무엇입니까?

분류에서Dev

Greedy Python RegEx 캡처 그룹에 "and"포함

분류에서Dev

일치하는 항목이 여러 개인 JavaScript RegEx에서 캡처 된 그룹 만 반환하는 방법

분류에서Dev

다른 그룹이 뒤에 오는 경우 정규식에서 그룹을 캡처하지 않는 방법

분류에서Dev

Crontab 출력이 로그 파일에 캡처되지 않습니다.

분류에서Dev

람다 캡처 그룹에서 끝없이 호출되는 복사 생성자

분류에서Dev

그룹 REGEX Java 캡처

분류에서Dev

Django에서 캡처되지 않는 선택적 URL 요소

분류에서Dev

조건 정규식 캡처 이전 그룹이 일치하는 경우에만 그렇지 않으면 캡처가 null로 설정됩니까?

분류에서Dev

캡처 그룹이있는 유효한 RegEx이지만 sed 스크립트가 작동하지 않음

분류에서Dev

캡처 그룹이있는 유효한 RegEx이지만 sed 스크립트가 작동하지 않음

분류에서Dev

일치하는 하위 문서의 캡처 그룹에 해당

분류에서Dev

Regex Match 탐욕스럽고 선택 사항이며 캡처하지 않는 그룹

분류에서Dev

대소 문자를 구분하지 않는 모드에서 명명 된 캡처 링 그룹의 "in"단어에서 정규 표현식이 잘립니다.

분류에서Dev

이 시점에서는 요소 입력에서 속성 캡처가 허용되지 않습니다.

분류에서Dev

캡처 그룹을 사용하여 HTML 코드를 일치시키는 PHP Regex

Related 관련 기사

  1. 1

    이전에 캡처되지 않은 이전 캡처 그룹을 기반으로 Regex를 일치시키는 방법이 있습니까?

  2. 2

    캡처되지 않는 그룹이 C #에 표시됨

  3. 3

    내 정규식이 여전히 캡처되지 않은 그룹을 캡처하고 있습니다.

  4. 4

    PowerShell-명명 된 캡처 그룹이있는 Regex에 필요한 지원

  5. 5

    C # Regex 캡처 그룹이 작동하지 않습니다.

  6. 6

    그룹 내에서 대체 캡처를 사용하는 Perl RegEx 비 캡처 그룹

  7. 7

    Powershell 단순 정규식 캡처 그룹이 캡처되지 않음

  8. 8

    Javascript Regex-캡처되지 않은 그룹 제거

  9. 9

    캡처되지 않은 그룹의 JS RegEx 대체?

  10. 10

    Regex / Python-이 경우 비 캡처 그룹이 캡처되는 이유는 무엇입니까?

  11. 11

    캡처 그룹을 노출하지 않는 REGEX 함수에 대한 대안이 있습니까?

  12. 12

    이전 요소와 일치하는 그룹화 0 또는 1 회 캡처되지 않음

  13. 13

    Regex는 캡처 그룹 외에 모든 것을 캡처합니다.

  14. 14

    pos () 보고서가 캡처되지 않은 그룹과도 일치하는 이유는 무엇입니까?

  15. 15

    Greedy Python RegEx 캡처 그룹에 "and"포함

  16. 16

    일치하는 항목이 여러 개인 JavaScript RegEx에서 캡처 된 그룹 만 반환하는 방법

  17. 17

    다른 그룹이 뒤에 오는 경우 정규식에서 그룹을 캡처하지 않는 방법

  18. 18

    Crontab 출력이 로그 파일에 캡처되지 않습니다.

  19. 19

    람다 캡처 그룹에서 끝없이 호출되는 복사 생성자

  20. 20

    그룹 REGEX Java 캡처

  21. 21

    Django에서 캡처되지 않는 선택적 URL 요소

  22. 22

    조건 정규식 캡처 이전 그룹이 일치하는 경우에만 그렇지 않으면 캡처가 null로 설정됩니까?

  23. 23

    캡처 그룹이있는 유효한 RegEx이지만 sed 스크립트가 작동하지 않음

  24. 24

    캡처 그룹이있는 유효한 RegEx이지만 sed 스크립트가 작동하지 않음

  25. 25

    일치하는 하위 문서의 캡처 그룹에 해당

  26. 26

    Regex Match 탐욕스럽고 선택 사항이며 캡처하지 않는 그룹

  27. 27

    대소 문자를 구분하지 않는 모드에서 명명 된 캡처 링 그룹의 "in"단어에서 정규 표현식이 잘립니다.

  28. 28

    이 시점에서는 요소 입력에서 속성 캡처가 허용되지 않습니다.

  29. 29

    캡처 그룹을 사용하여 HTML 코드를 일치시키는 PHP Regex

뜨겁다태그

보관