문자열이 abc.
인 경우 두 개의 그룹, 즉 abc
과 .
으로 나누는 것이 좋습니다. 사실, 나는 단지 .
이전의 그룹에만 관심이있다.re.findall이 가져 오는 동안 re.search가 올바른 그룹을 얻지 못하는 이유는 무엇입니까?
>>> import re
>>> text = 'abc.'
>>> re.search('^(\S+)\.$', text).group(0)
'abc.'
>>> re.findall('^(\S+)\.$', text)
['abc']
왜 re.search는 re.findall가 점점 동안 올바른 그룹을 받고되지 않는 이유는 무엇입니까?
입력이 abc.def.
또 다른 예는 예상 출력 최종 fullstop을 분리하고 abc.def
및 .
를 얻을 수있다. 그래서 re.findall
는 원하는대로 점점 :
>>> re.findall('^(\S+)\.$', text)
['abc.def']
그러나 re.search
덩어리 첫 번째 그룹에 최종 fullstop합니다.
>>> re.search('^(\S+)\.$', text).group(0)
'abc.def.'
그것은
re.search('^(\S+)\.$', text).group(0)
만 abc.def
를 반환 할 수 있습니까? 설정할 플래그가 있습니까?
그룹 번호는 1부터 시작합니다. – user2357112