簡體   English   中英

python正則表達式多重查找

[英]python regex multiple find

我正在嘗試從Web請求中正確提取一些cookie。 基本上我有這個字符串:

 str="""Cole_gal_langid=0; Expires=Sun, 14-Jul-13 20:37:22 GMT, Cole_gal_styleid=4; Expires=Sun, 14-Jul-13 20:37:22 GMT, Cole_gal_viewid=test; Expires=Sun, 14-Jul-13 20:37:22 GMT, Cole_gal_appid=gal; Expires=Sun, 14-Jul-13 20:37:22 GMT, Cole_gal_navk=common.invalidBookmark; Expires=Sun, 14-Jul-13 20:37:22 GMT, Cole_gal_trans=InvalidBookmark; Expires=Sun, 14-Jul-13 20:37:22 GMT"""

我想刪除所有“Expires = Sun,14-Jul-13 20:37:22 GMT”,此字符串中的條目。 所以這個字符串變為:

str="""Cole_gal_langid=0; Cole_gal_styleid=4; Cole_gal_viewid=test; Cole_gal_appid=gal; Cole_gal_navk=common.invalidBookmark; Cole_gal_trans=InvalidBookmark;"""

我正在考慮使用Re:

import re

str="""Cole_gal_langid=0; Expires=Sun, 14-Jul-13 20:37:22 GMT, Cole_gal_styleid=4; Expires=Sun, 14-Jul-13 20:37:22 GMT, Cole_gal_viewid=test; Expires=Sun, 14-Jul-13 20:37:22 GMT, Cole_gal_appid=gal; Expires=Sun, 14-Jul-13 20:37:22 GMT, Cole_gal_navk=common.invalidBookmark; Expires=Sun, 14-Jul-13 20:37:22 GMT, Cole_gal_trans=InvalidBookmark; Expires=Sun, 14-Jul-13 20:37:22 GMT"""

a = re.search('(Cole_gal_*.\=*)[^;]*', str)
if a:
   quote = "Regex found this: "+a.group(0)+"\r\n"
   print quote

不幸的是,我只得到一個結果,而不是所有的實際cookie

任何幫助或建議將不勝感激。

謝謝 !

re.sub刪除多次出現的作業模式:

>>> re.sub(r'Expires=.*?GMT([,;]|$)', '', s)
'Cole_gal_langid=0;  Cole_gal_styleid=4;  Cole_gal_viewid=test;  Cole_gal_appid=gal;  Cole_gal_navk=common.invalidBookmark;  Cole_gal_trans=InvalidBookmark; '

怎么樣findall

返回字符串中pattern的所有非重疊匹配,作為字符串列表。 從左到右掃描字符串,並按找到的順序返回匹配項。 如果模式中存在一個或多個組,則返回組列表; 如果模式有多個組,這將是一個元組列表。 結果中包含空匹配,除非它們觸及另一個匹配的開頭。

查看re.finditer函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM