匹配链接 <a href='www.xxx.com'>
(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')
上面这个正则表达式是网上找的.
首先'或'把两端分开
- (?<=href=\").+?(?=\")
- (?<=href=\').+?(?=\')
然后 (?<=href=\") [反向肯定预查] 的意思是, 查找到某个字符时, 先向前看看有没有 href=\" , 有则成立.
下面的例子, 在w字符的前面有 href=" 所以这个w要保留. 预查的东西是不进行输出的.
<a data="13" href="www.baidu.com"/>
(?=\") [正向肯定预查] 找到com的m的时候, m后面存在 " , 所以m要保留
.+? : .的意思是任意字符, +的意思是1次或更多, ?的意思是不贪婪, 满足条件的情况下越短越好
参考链接:正则表达式 – 元字符 | 菜鸟教程, 在其中搜索(?=pattern)
Python 正则表达式 re模块
re.search: 扫描整个字符串并返回第一个成功的匹配。
re.findall: 查找所有的字符串
re.sub 检索和替换
- pattern : 正则中的模式字符串。
- repl : 替换的字符串,也可为一个函数。
- string : 要被查找替换的原始字符串。
- count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
请参考:http://www.runoob.com/python/python-reg-expressions.html
Python 正则表达式的其它问题
在字符串前加r表示禁止转义
例如 r"\"" 表示 \"
如果不用转义, 要表示 \", 需要写成"\\\""