被Python折磨的第8天

2019.8.23
多线程
正则表达式

符号解释示例说明
.匹配任意字符b.t可以匹配bat / but / b#t / b1t等
\w匹配字母/数字/下划线b\wt可以匹配bat / b1t / b_t等
但不能匹配b#t
\s匹配空白字符(包括\r、\n、\t等)love\syou可以匹配love you
\d匹配数字\d\d可以匹配01 / 23 / 99等
\b匹配单词的边界\bThe\b
^匹配字符串的开始^The可以匹配The开头的字符串
$匹配字符串的结束.exe$可以匹配.exe结尾的字符串
\W匹配非字母/数字/下划线b\Wt可以匹配b#t / b@t等
但不能匹配but / b1t / b_t等
\S匹配非空白字符love\Syou可以匹配love#you等
但不能匹配love you
\D匹配非数字\d\D可以匹配9a / 3# / 0F等
\B匹配非单词边界\Bio\B
[]匹配来自字符集的任意单一字符[aeiou]可以匹配任一元音字母字符
[^]匹配不在字符集中的任意单一字符[^aeiou]可以匹配任一非元音字母字符
*匹配0次或多次\w*
+匹配1次或多次\w+
?匹配0次或1次\w?
{N}匹配N次\w{3}
{M,}匹配至少M次\w{3,}
{M,N}匹配至少M次至多N次\w{3,6}
|分支foo|bar可以匹配foo或者bar
(?#)注释
(exp)匹配exp并捕获到自动命名的组中
(?<name>exp)匹配exp并捕获到名为name的组中
(?:exp)匹配exp但是不捕获匹配的文本
(?=exp)匹配exp前面的位置\b\w+(?=ing)可以匹配I’m dancing中的danc
(?<=exp)匹配exp后面的位置(?<=\bdanc)\w+\b可以匹配I love dancing and reading中的第一个ing
(?!exp)匹配后面不是exp的位置
(?<!exp)匹配前面不是exp的位置
*?重复任意次,但尽可能少重复a.*b
a.*?b
将正则表达式应用于aabab,前者会匹配整个字符串aabab,后者会匹配aab和ab两个字符串
+?重复1次或多次,但尽可能少重复
??重复0次或1次,但尽可能少重复
{M,N}?重复M到N次,但尽可能少重复
{M,}?重复M次以上,但尽可能少重复

在这里插入图片描述
在这里插入图片描述
正则练习
获取“Hello”
在这里插入图片描述
获取“World”
在这里插入图片描述
使用正则表达式获取网站信息

import requests
import re

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'}
url = 'http://www.89ip.cn'
response = requests.get(url,headers=headers)
html = response.text 
#print(html)
regex = re.compile('<td>\n.*\t(.*?)\t\t</td>')
res = regex.findall(html)
print(res)

(base) C:\Users\Administrator>F:/install/Anaconda/python.exe d:/VScode/Untitled-12.py
['163.204.247.118', '9999', '    广东省汕尾市', '联通', '2019/08/27 22:30:03', '120.83.109.75', '9999', '    广东省揭阳市普宁市', '联通', '2019/08/27 22:30:03', '182.35.81.127',
'9999', '    山东省泰安市', '电信', '2019/08/27 22:30:03', '113.124.93.218', '9999', '
 山东省烟台市', '电信', '2019/08/27 22:30:03', '183.23.75.95', '61234', '    广东省东莞市
', '电信', '2019/08/27 22:30:03', '58.211.134.98', '38480', '    江苏省苏州市', '电信', '2019/08/27 22:30:03', '60.9.1.250', '80', '    河北省衡水市深州市', '联通', '2019/08/27 22:30:03', '117.95.135.56', '61234', '    江苏省宿迁市', '电信', '2019/08/27 22:30:03', '116.62.240.1', '3128', '    黑龙江省', '中移铁通', '2019/08/27 22:30:03', '59.57.149.246', '9999', '    福建省厦门市', '电信', '2019/08/27 22:30:03', '163.204.246.160', '9999', '
   广东省汕尾市陆丰县', '联通', '2019/08/27 22:30:03', '122.193.245.203', '9999', '    江
苏省南通市', '联通', '2019/08/27 22:30:03', '182.34.35.1', '9999', '    山东省烟台市', '
电信', '2019/08/27 22:30:03', '49.70.64.222', '9999', '    江苏省宿迁市', '电信', '2019/08/27 22:30:03', '36.255.87.228', '83', '    浙江省', '电信', '2019/08/27 22:30:03']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值