爬虫常用正则 爬虫经常用到的一些正则,这可以帮助我们更好地处理字符。 正则符 单字符 数量修饰 边界 分组 贪婪模式 非贪婪惰性模式 # 1 提取出python ''' key = 'javapythonc++php' re.findall('python',key) re.findall('pyt ...
分类:
其他好文 时间:
2019-07-26 17:25:09
阅读次数:
108
Date: 2019 07 03 Author: Sun 本节目的: (1)掌握正则表达式和re模块使用 (2)python操作正则表达式,匹配贪婪和非贪婪模式使用 (3)掌握常见函数find, findall, search, match, split等用法 正则表达式 ? 正则表达式(Regul ...
分类:
其他好文 时间:
2019-07-04 00:48:07
阅读次数:
103
1、正则表达式匹配中,(.*)和(.*?)匹配有什么区别? 差别其实就是 ? 的差别,加上 ? 则为非贪婪匹配则 (.*) 是贪婪匹配,会尽可能的往后匹配更多 (.*?) 非贪婪匹配,满足的情况下尽可能少的匹配 代码示例如下: ...
分类:
编程语言 时间:
2019-06-26 13:46:09
阅读次数:
87
最近框架和爬虫上常要处理字符串匹配和替换的场景,备忘。 非贪婪模式 比如要匹配html文本中的连接,例如a href="www.abc.com/xyz/o"需要替换为a href="www.bing.com?q=o",可以如下: 但是此时会导致第一个href="之后的文字到最后一个"之间的内容都是链 ...
分类:
编程语言 时间:
2019-06-14 21:36:32
阅读次数:
125
正则表达式基本语法 用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。 其中 ?: 是非捕获元之一,还有两个非捕获元是 ?= 和 ?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则 ...
分类:
其他好文 时间:
2019-06-11 14:51:39
阅读次数:
128
如果字符串里面有转义字符,那么就加r 让它保持未转义,当然处理时也要用未转义来处理。 \x \\\\x \r \\\\r () \( \) .*? 非贪婪 re.findall( 正则字符串,匹配字符串,re.S(.匹配任意字符串包括-负号)) () 分组如果是findall方法,返回直接是[(,) ...
分类:
其他好文 时间:
2019-05-02 18:36:48
阅读次数:
100
python的re模块中有贪婪匹配和非贪婪匹配之分,当使用*时会匹配零个或多个,使用+时会匹配一个或多个.当使用?在前边特殊符号前时会进行非贪婪匹配,匹配零个或者一个,今天主要讨论非贪婪匹配中存在的坑. 从上边例子中可以看出,当带有'?'的部分单独处于正则开头并且后边没有其它匹配条件时,匹配结果会多 ...
分类:
其他好文 时间:
2019-04-09 00:11:20
阅读次数:
174
1.正则表达式大全 https://www.cnblogs.com/xudong-bupt/p/3586889.html 2.贪婪匹配 是否需要贪婪匹配在写正则表达式时是很重要的一个概念。'?'只有在上面三种表达时才表示非贪婪匹配,其他时候都是表示0个或1个字符。贪婪匹配简单来说就是匹配尽可能多符合 ...
分类:
其他好文 时间:
2019-03-25 23:28:21
阅读次数:
170
Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符; 非贪婪则相反,总是尝试匹配尽可能少的字符。 在"*","?","+","{m,n}"后面加上?,使贪婪变成非贪婪。 正则表达式模式中使用到通配字,那它在从左到右的顺序求值时,会尽量“抓取”满足匹配最长字 ...
分类:
编程语言 时间:
2019-03-04 10:00:24
阅读次数:
195