Python의 정규식이 올바르게 일치하지 않음

Siddharth

Python에서 정규식을 사용하여 문자열에서 데이터를 추출하려고합니다.

문자열은 "첫 주문 15 % 할인"입니다. 이 문자열에서 15 개를 추출하고 싶습니다. 이를 위해 나는-

import re
pattern = r'.*(\d+)\s*\%.*off.*'
string = '15% Off your first order'
m = re.match(pattern, string, re.I)
print m.group(1)

그러나,이 반환 5하지 15. 내가 무엇을 놓치고 있습니까?

네네

실제 문제는 여기에 있습니다

.*(\d+)

.*욕심입니다. 따라서 실제 일치는 이와 같이 발생합니다.

r'.*(\d+)\s*\%.*off.*'

.*탐욕스럽고 RegEx가 충족되는지 확인하기 때문에 먼저 전체 문자열과 일치합니다. 만족스럽지 않기 때문에 마지막 문자를 남기고 RegEx와 일치하는지 확인합니다. 따라서이 작업을 지속적으로 수행하고 나머지 문자열 과 일치하는 항목 1을 찾습니다 (\d+)\s*\%.*off.*. 그래서, .*실제로는 5를 맞추기 위해 까지 1그리고 떠나는 \d+것을 일치 5시킵니다. 그것이주는 이유 입니다. 이렇게 탐욕스럽지 않게 변경

r'.*?(\d+)\s*\%.*off.*'

지금 .*때문에 비 욕심이다 ?. 따라서 가능한 한 최소한으로 일치합니다. 따라서 \d+15와 일치 하므로 여기에서는 아무것도 일치하지 않습니다 .

참고 : 보시다시피 가능한 모든 일치 항목을 반복적으로 시도해야합니다. 그래서 그것은 매우 비효율적입니다. 실제로 이렇게 쓸 수 있습니다

r'.*?(\d+)\s*?\%\s*?off.*'

탐욕스럽지 않은 연산자를 모든 곳에서 사용하기 때문에 원래 탐욕스러운 버전보다 낫습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python이 정규식을 올바르게 해석하지 않습니다.

분류에서Dev

정규식이 올바르게 검증되지 않음

분류에서Dev

Python findall이 올바르게 일치하지 않습니다.

분류에서Dev

두 개의 이미지가 올바르게 겹치지 않음

분류에서Dev

정의 된 방정식이 올바르게 변환되지 않음

분류에서Dev

Python 형식이 올바르게 표시되지 않음

분류에서Dev

Azure Data Explorer, Kusto : extract ()에서 정규식이 의미 상 올바르지 않음

분류에서Dev

Python이 파일을 올바르게 읽지 않음

분류에서Dev

Python이 목록을 올바르게 합하지 않음

분류에서Dev

Python Auto ARIMA 모델이 올바르게 작동하지 않음

분류에서Dev

메서드가 올바르게 재정의되지 않음

분류에서Dev

바닥 글의 아이콘이 올바르게 배치되지 않음

분류에서Dev

인접 행렬이 올바르게 채워지지 않음 Python

분류에서Dev

pydev의 주석이 올바르게 표시되지 않음

분류에서Dev

CSV 파일의 수정 된 값이 올바르게 가져 오지 않음

분류에서Dev

게시물의 댓글이 레일에 올바르게 표시되지 않음

분류에서Dev

Python strip ()이 파일 경로 이름의 일부를 올바르게 제거하지 않음

분류에서Dev

정규식 이중 수량자가 올바르게 일치하지 않습니다.

분류에서Dev

Python Mock이 반환 값을 올바르게 설정하지 않음

분류에서Dev

IE의 양식 내에서 확인란 이미지 스타일이 올바르게 작동하지 않음

분류에서Dev

settext의 백분율 형식이 올바르게 표시되지 않음

분류에서Dev

사용자 정의 EditorTemplate이 양식 값을 올바르게 반환하지 않음

분류에서Dev

소스 나뭇 가지의 색상이 올바르게 지정되지 않음

분류에서Dev

Android 툴바의 크기가 올바르게 조정되지 않음

분류에서Dev

ORDER BY의 HQL 케이스가 올바르게 정렬되지 않음

분류에서Dev

PHPMailer가 헤더의 문자 집합을 올바르게 설정하지 않음

분류에서Dev

QGraphicsItemGroup.removeFromGroup-자식 항목이 장면의 상위 항목이 올바르게 지정되지 않음

분류에서Dev

Xaxis 레이블의 DateTime이 올바르게 작동하지 않음 MPAndroidChart

분류에서Dev

내 정규식이 올바르게 작동하지 않습니까?

Related 관련 기사

  1. 1

    Python이 정규식을 올바르게 해석하지 않습니다.

  2. 2

    정규식이 올바르게 검증되지 않음

  3. 3

    Python findall이 올바르게 일치하지 않습니다.

  4. 4

    두 개의 이미지가 올바르게 겹치지 않음

  5. 5

    정의 된 방정식이 올바르게 변환되지 않음

  6. 6

    Python 형식이 올바르게 표시되지 않음

  7. 7

    Azure Data Explorer, Kusto : extract ()에서 정규식이 의미 상 올바르지 않음

  8. 8

    Python이 파일을 올바르게 읽지 않음

  9. 9

    Python이 목록을 올바르게 합하지 않음

  10. 10

    Python Auto ARIMA 모델이 올바르게 작동하지 않음

  11. 11

    메서드가 올바르게 재정의되지 않음

  12. 12

    바닥 글의 아이콘이 올바르게 배치되지 않음

  13. 13

    인접 행렬이 올바르게 채워지지 않음 Python

  14. 14

    pydev의 주석이 올바르게 표시되지 않음

  15. 15

    CSV 파일의 수정 된 값이 올바르게 가져 오지 않음

  16. 16

    게시물의 댓글이 레일에 올바르게 표시되지 않음

  17. 17

    Python strip ()이 파일 경로 이름의 일부를 올바르게 제거하지 않음

  18. 18

    정규식 이중 수량자가 올바르게 일치하지 않습니다.

  19. 19

    Python Mock이 반환 값을 올바르게 설정하지 않음

  20. 20

    IE의 양식 내에서 확인란 이미지 스타일이 올바르게 작동하지 않음

  21. 21

    settext의 백분율 형식이 올바르게 표시되지 않음

  22. 22

    사용자 정의 EditorTemplate이 양식 값을 올바르게 반환하지 않음

  23. 23

    소스 나뭇 가지의 색상이 올바르게 지정되지 않음

  24. 24

    Android 툴바의 크기가 올바르게 조정되지 않음

  25. 25

    ORDER BY의 HQL 케이스가 올바르게 정렬되지 않음

  26. 26

    PHPMailer가 헤더의 문자 집합을 올바르게 설정하지 않음

  27. 27

    QGraphicsItemGroup.removeFromGroup-자식 항목이 장면의 상위 항목이 올바르게 지정되지 않음

  28. 28

    Xaxis 레이블의 DateTime이 올바르게 작동하지 않음 MPAndroidChart

  29. 29

    내 정규식이 올바르게 작동하지 않습니까?

뜨겁다태그

보관