赞
踩
目录
conda --version
conda info
conda list 已安装的包
conda install package_name(package_name:包名)
例如:
conda install numpy
安装多个
conda install numpy scipy pandas
安装指定版本
conda install numpy=1.10
卸载
conda remove package_name
更新
conda update package_name
更新多有
conda update --all
使用re模块实现正则表达式
使用re的方法:re.search(regex,string) 实现
例1 获取包含"爬虫"这个关键字的句子
- import re
- text_string = "文本最重要的来源无疑是网络。我们要把网络中的文本获取形成一个文本数据库。利用一个爬虫获取到网络中的信息。爬取的策略有广度爬取和深度爬取。根据用户的需求,爬虫可以有主题爬虫和通用爬虫之分。"
- regex = '爬虫'
- p_string = text_string.split("。")
- for line in p_string:
- if re.search(regex, line) is not None:
- print(line)
输出结果:
- 利用一个爬虫获取到网络中的信息
- 根据用户的需求,爬虫可以有主题爬虫和通用爬虫之分
例2 匹配任意一个字符
符号 | 含义 |
. | 匹配任意一个字符 |
例如
正则表达式 | 可以匹配 | 不可匹配 |
"a.c" | "abc","branch" | "add","crfdadnh" |
"..t" | "bat","out" | "it","table" |
演示代码:
- import re
- text_string = "文本最重要的来源无疑是网络。我们要把网络中的文本获取形成一个文本数据库。利用一个爬虫获取到网络中的信息。爬取的策略有广度爬取和深度爬取。根据用户的需求,爬虫可以有主题爬虫和通用爬虫之分。"
- # 修改此处
- regex = '爬.'
- p_string = text_string.split("。")
- for line in p_string:
- if re.search(regex, line) is not None:
- print(line)
代码基本不变,把regex中的“爬虫” 修改为 “爬.”即可。所以“爬虫”和“爬去”都匹配。
输出结果:
- 利用一个爬虫获取到网络中的信息
- 爬取的策略有广度爬取和深度爬取
- 根据用户的需求,爬虫可以有主题爬虫和通用爬虫之分
例3 匹配起始和结尾字符串
符号 | 含义 |
^ | 匹配开始的字符串 |
$ | 匹配结尾的 |
例如
- import re
-
- text_string = "文本最重要的来源无疑是网络。我们要把网络中的文本获取形成一个文本数据库。利用一个爬虫获取到网络中的信息。爬取的策略有广度爬取和深度爬取。根据用户的需求,爬虫可以有主题爬虫和通用爬虫之分。"
- regex = '^文本'
- p_string = text_string.split("。")
- for line in p_string:
- if re.search(regex, line) is not None:
- print(line)
输出:
文本最重要的来源无疑是网络
例4 使用中括号匹配多个字符
符号 | 含义 |
[] | 匹配多个字符串 |
例如:
[bcr]at 匹配==>> bat cat rat
- import re
- text_string = ['重要的今年第七号台风23日登陆广东东部沿海地区','上海发布车库销售监管通知:违规者暂停网签资格','紧要的中国对印连发强硬信息,印度紧切需要结束对峙']
- regex = '[重紧]..'
- for line in text_string:
- if re.search(regex, line) is not None:
- print(line)
- else:
- print('not match')
输出:
- 重要的今年第七号台风23日登陆广东东部沿海地区
- not match
- 紧要的中国对印连发强硬信息,印度紧切需要结束对峙
r"\\" == "\\\\"
例如:"\\d" 可以写成 r"\d"
例子:
- import re
- if re.search("\\\\","I have one nee\dle") is not None:
- print("match it")
- else:
- print("not match")
- # 使用r"\\" 转换 "\\\\"
- if re.search(r"\\","I have one nee\dle") is not None:
- print("match it")
- else:
- print("not match")
1:通过正则表达式匹配年费
"[0-9]"代表从0到9的所有数字
"[a-z]"代表从a-z的所有小子字母
- import re
-
- strings = ['War of 1812', 'There are 5280 feet to a mile', 'Happy New Year 2016', 'What fuck 2021']
- year_strings = []
- for string in strings:
- if re.search('[1-2][0-9]{3}', string):
- year_strings.append(string)
- print(year_strings)
输出结果:
['War of 1812', 'Happy New Year 2016', 'What fuck 2021']
2:抽取所有年份
- import re
- year_string = '2012 是一个很不错的年,但是2020却是一个让人很不愉快的一年。'
- years = re.findall('[2][0-9]{3}',year_string)
- print(years)
输出结果:
['2012', '2020']
参考文献:python自然语言处理实践-核心计算与算法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。