2013-04-16 18 views

cevap

6

önemsiz çözüm:

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

Daha güzel bir çözüm:

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

güzel çözüm:

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

findall döner sadece captu yakalama gruplar var kırmızı parçalar. Parantezlerin yakalama grubu olmasını önlemek için ?: kullanın.

+0

' 100 | [0-9] [0-9] | – Bryan

2

iç grupla olmayan bir yakalama grubunu bir dış grup kullanın:

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