python re模块还是需要重新学习。

python readline 和 readlines(), readline() , read() 3者之间的区分,之前1直都不清楚,现在弄清楚是怎样回事了。

readlines() 可以1起显示出全部文件,这个也是迭代显示的,需要追行显示,迭代器的指针会被消耗的。

python 中的正则是匹配换行之外的所有的字符。.* 是匹配不了所有的字符的。在某些情况下,我的结论是正确的,但是在某些情况下,我的结论又是毛病的。刚才遇到的问题,现在终究知道是怎样回事了,原来是贪婪匹配和非贪婪匹配的问题,对这类情况,我也是相对迟钝了。

save.html 是我随意抓来的1个html,我要从这个html中抓出所有的 javascript代码段。

def getcss():

fh = open('save.html')

html =fh.read()

#js_pattern = re.compile(r'

ans = re.findall(r'',html,re.S)

src_pattern = re.compile(r'^"http.*"');

for i in ans:

#ret = re.findall(src_pattern,i)

print i

通过上面的程序,我得到了下面的结果。源文件是1个html,格式1般,这些代码段是分行的,我的目的是找出所有的代码段。下面做1个简单的解释。在尝试的进程中,我试了好几种正则表达式,下面讲1下我遇到的问题。

实现是跨行匹配的问题,.*是没法匹配

的,所以如果标签散布在不同的行,那末如何匹配中间的内容呢。为了解决跨行匹配的问题,找到了这个解决方案,可以用([dD]*)或([wW]*) 或([sS]*) 来代替。

然后又遇到了问题,我的正则总是会匹配太多的内容,最后发现,我的匹配模式是依照最多内容匹配的。默许的匹配模式是贪婪匹配,所以如果用了.*的话,总会匹配更多的内容。所以找到了这个参考。python贪婪匹配看到了贪婪匹配和非贪婪匹配的核心在1个?上,re.S标记是多行匹配的关键,类似的标记还有re.M标记,这个是1行的标记。re.M:^$标志将会匹配每行,默许^和$只会匹配第1行,文章里有几个例子还是很不错的,值得仔细研究1下,建议自己履行1下这些代码,看下结果,如果这些都很清楚,那末正则掌握的还算不错。

re.findall(r"a(d+?)", "a23b")

re.findall(r"a(d+)", "a23b")

re.findall(r"a(d+)b.+a(d+)b", "a23b

a34b")

re.findall(r"a(d+)b.+a(d+)b", "a23b

a34b", re.S)

最后,实现了上面我提出的需求,主要利用了跨行匹配和非贪婪匹配。

python贪婪与非贪婪_python 贪婪 非贪婪 匹配相关推荐

  1. python异常值检测的方法_Python实现非正太分布的异常值检测方式

    工作中,我们经常会遇到数据异常,比如说浏览量突增猛降,交易量突增猛降,但是这些数据又不是符合正太分布的,如果用几倍西格玛就不合适,那么我们如何来判断这些变化是否在合理的范围呢? 小白查阅一些资料后,发 ...

  2. python连接数据库实现登录注册_python实现非数据库模式的用户注册和登录

    码农公社  210.net.cn  210= 1024  10月24日一个重要的节日--码农(程序员)节 python面向函数编程,模拟用户注册和登录. 由以下两个文件来实现: 1.user.txt文 ...

  3. python给用户打标签_python用户评论标签匹配的解决方法

    我们观察用户评论发现:属性词往往和情感词伴随出现,原因是用户通常会在描述属性时表达情感,属性是情感表达的对象.还发现:属性词和专用情感词基本都是名词或形容词(形谓词). 算法流程图如下: 评论数据如下 ...

  4. python贪婪匹配和非贪婪匹配_Python关于正则贪婪与非贪婪特性的详解

    这篇文章主要介绍了Python正则表达式中贪婪/非贪婪特性的相关资料,文中通过示例代码介绍的很详细,对大家具有一定的参考价值,需要的朋友下面来一起看看吧. 之前已经简单介绍了Python正则表达式的基 ...

  5. python 进程池阻塞和非阻塞_python 之 并发编程(进程池与线程池、同步异步阻塞非阻塞、线程queue)...

    9.11 进程池与线程池 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 池子内什么时候装进程:并发的任务属于计算密集型池子内什么时候装线程:并发的任务属于IO ...

  6. python中__init__导入失败_python - 如何使用__init__.py修复“在非包中尝试相对导入”...

    python - 如何使用__init__.py修复"在非包中尝试相对导入" 我正在尝试遵循PEP 328,具有以下目录结构: pkg/ __init__.py component ...

  7. python阻塞和非阻塞_Python基础必备知识:同步异步阻塞非阻塞

    一.状态介绍 在了解其他概念之前,我们首先要了解进程的几个状态.在程序运行的过程中,由于被操作系统的调度算法控制,程序会进入几个状态:就绪,运行和阻塞. 就绪(Ready)状态:当进程已分配到除CPU ...

  8. js正则贪婪模式_JavaScript正则表达式迷你书之贪婪模式-学习笔记

    这篇文章主要介绍了JavaScript正则表达式迷你书之贪婪模式-学习笔记,需要的朋友可以参考下 贪婪模式: 在使用修饰匹配次数的特殊符号时,有几种表示方法可以使同一个表达式能够匹配不同的次数,比如: ...

  9. Python正则表达式中的贪心模式和非贪心模式

    声明:最近发现有人利用我在百度云盘里免费分享的127课Python视频盈利,并声称获得我的授权.在此,我声明,文末百度云盘里的Python视频是免费的,不会授权给任何人或机构进行销售.如果再发现有人卖 ...

  10. 贪婪洞窟2服务器维护,12月19日贪婪洞窟2停服维护公告 贪婪洞窟2更新了什么

    原标题:12月19日贪婪洞窟2停服维护公告 贪婪洞窟2更新了什么 斗玩网(douwan.com)报道:12月19日贪婪洞窟2发布维护公告,此次停服维护主要针对游戏中出现的bug以及优化游戏,一起来看看 ...

最新文章

  1. 关于nginx rewrtie的四种flag
  2. PAT (Basic Level) 1055 集体照(模拟,好题)
  3. 一元二次方程求根公式的花样变换,你看懂了吗?
  4. DevOps实践-从0到1搭建敏捷团队的持续集成环境
  5. 【Flink】Flink常量UDF-TableFunction优化
  6. C#学习之ObjectOriented、Record
  7. php中一个字符占用几个字节?
  8. vue组件系列3、查询下载
  9. oracle32转64,Oracle10g下载地址--多平台下的32位和64位 (转)
  10. CSDN寄送的礼物,博客评选的阳光普照奖
  11. 几个小伙伴的进入信息安全行业的经历
  12. 超星PDG格式转换成PDF格式及其它格式
  13. tcc-transaction源码详解
  14. 论文复现-金融风控模型案例
  15. 计算机组装需要注意什么东西,组装一台计算机需要注意那些问题?
  16. FastStone.MaxView.2.keygen-REPT
  17. 什么数据可以成为“数据资产”?数据资产化又该如何实现?
  18. 计算机学哪个编程好,达内机器人编程VS计算机编程,学哪个最好
  19. PLM系统应用案例:重庆通用工业(集团)有限责任公司
  20. 测试用例的书写方式以及测试模板大全

热门文章

  1. 利用系统提供的崩溃日志解Native层Bug
  2. ArtVideoPlayer:一个灵活的视频播放器
  3. VMware workstation运维实践系列博客导航
  4. ReactNative学习笔记(一)环境搭建
  5. Linux查看swap使用情况小脚本
  6. 安装oracle sqldeveloper
  7. tomcat配置用户数据
  8. linux之循环执行任务
  9. 检测某个IP是否属于某个网段范围
  10. Kinect+OpenNI学习笔记之4(OpenNI获取的图像结合OpenCV显示)