python正则表达式多重查找

标签 python regex string

我正在尝试从网络请求中正确提取一些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; '

关于python正则表达式多重查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11487328/

相关文章:

python - 从同一 pandas 数据帧的切片中减去切片

python - 安装时复制配置文件

javascript - 用于网站或网址验证的正则表达式

javascript - 在文档中找到正则表达式。 getelementbyid

python - 使用正则表达式查找格式为 '[number]' 的字符串

string - 如何在 Swift 中从 NSData 初始化一个字符串

python - Canvas 上的 Matplotlib RegularPolygon 集合位置

python - 属性错误 : module 'win32ctypes.pywin32.win32api' has no attribute 'error'

php - 在字符串末尾递增整数

c++ - 使用字符串作为文件容器