2013-04-16 2 views

답변

6

사소한 솔루션 :

>>> re.findall("(100%|[0-9][0-9]%|[0-9]%)","89%") 
['89%'] 

더 아름다운 해결책 :

>>> re.findall("(100%|[0-9]{1,2}%)","89%") 
['89%'] 

미녀 솔루션 :

>>> re.findall("(?:100|[0-9]{1,2})%","89%") 
['89%'] 
10
>>> re.findall("(?:100|[0-9][0-9]|[0-9])%", "89%") 
['89%'] 

findall 반환 만 captu 캡처 그룹이 있습니다 빨간색 부분. 괄호가 캡처 그룹이되지 않게하려면 ?:을 사용하십시오.

+0

'100 | [0-9] [0-9] | [0-9]'를'\ d {1,3}'로 변경하면 패턴의 의도가 바뀌겠습니까? – Bryan

2

내부 그룹과 비 캡처 그룹 외부 그룹을 사용

>>> re.findall("((?:100|[0-9][0-9]|[0-9])%)","89%") 
['89%']