0
나는 HTML 추출 작업을하고 있으며, 정규 표현식을 사소한 업무로 사용하고 있습니다. 나는 파이썬 re
모듈을 사용하고 있으며 그룹을 정의 할 때 내부 그룹을 반환하지 않도록하고 싶다. 필요하다면 최소한 필요할 것이다.정규식에서 내부 그룹 회피하기
line = u" 07.49 (43 votes) "
그리고 표현 :
expr = lambda x: re.findall("(\d+(\.\d{1,2})?)\D*(\d+)", x)
응용 프로그램의 반환은 다음과 같습니다
expr(line)
[(u'7.49', u'.49', u'43')]
내가하고 싶은 예를 들어
는 문자열을 고려 결과는 다음과 같습니다.expr(line)
[(u'7.49', u'43')]
숫자의 소수 부분이 나타나지 않을 수 있으므로 (\.\d{1,2})?
을 "(\d+(\.\d{1,2})?)\D*(\d+)"
에 정의해야합니다.
이 문제를 방지 할 방법이 있습니까 여분의 그룹?
이것은 파이썬 고유의 구문입니까, 아니면 sed, egrep 및 기타 도구에서 유효합니까? – Rubens
@Rubens .. 이것은 Regex에만 해당되며 모든 Regex 도구에 유효합니다. –
와우! 훌륭한! 오랫동안 이것을 찾고있었습니다. D : 고마워요! 그냥 또 다른 질문 : '[^ ...]'을 사용하는 것과 같이 그룹을'무효화 '할 수 있지만'... '을 그룹으로 갖는 것입니까? – Rubens