2013-10-17 30 views
0

我想知道是否有一個「智能」的方式(一個正則表達式表達)提取從下面的段落編號:蟒的正則表達式與重複子圖案

...
imgList = '9/optimized/1260089_fpx.tif,0/optimized/1260090_fpx.tif';
...

結果建議立即進行刪除是含有1260089列表,並1260090。該ID的數量可能高達10

我需要這樣的東西:

re.findall('imgList = (some expression)', string) 

任何想法?

回答

1

最好的辦法是使用一個正則表達式來查找所有數字。我呼籲re.findall

>>> imgList = '9/optimized/1260089_fpx.tif,0/optimized/1260090_fpx.tif' 
>>> import re 
>>> re.findall('optimized/([0-9]*)_fpx', imgList) 
['1260089', '1260090'] 

你當然可以使正則表達式較強,但如果數據是爲你指出,這應該足夠了。

0
import re 

s = '9/optimized/1260089_fpx.tif,0/optimized/1260090_fpx.tif' 

print(re.findall(r'(\d+)_fpx.tif', s)) 
0

如果optimzed/_fpx部分不能保證,且ID爲7和10位 之間,你可以做類似

import re 
re.findall('[\d]{7,10}', imgList) 

這將在字符串中找到了7〜10位數字,因此,0-6或超過10位的ID將被排除。

+0

這種方法不是我所期待的,但可能會完成工作。謝謝! – user2890231

0
import re 
imgList = '9/optimized/1260089_fpx.tif,0/optimized/1260090_fpx.tif' 
re.findall(r'([0-9]){7}',imgList) 

['1260089', '1260090'] 

該代碼只能滿足您的情況。