2013-04-16 92 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%'] 
相關問題