当前位置:
首页 > temp > python入门教程 >
-
Python正则表达式匹配一段英文中包含关键字的句子
1.问题/需求
在含有多行文字的英文段落或一篇英文中查找匹配含有关键字的句子。
例如在以下字符串:
text = '''Today I registered my personal blog in the cnblogs and wrote my first essay. The main problem of this essay is to use python regular expression matching to filter out sentences containing keywords in the paper. To solve this problem, I made many attempts and finally found a regular expression matching method that could meet the requirements through testing. So I've documented the problem and the solution in this blog post and shared it for reference to others who are having the same problem. At the same time, this text is also used to test the feasibility of this matching approach. Some additional related thoughts and ideas will be added to this blog later.'''
中匹配含有’blog‘的句子。
2.解决方法
因为要找出所有含有关键字的句子,所以这里采用re库中findall()方法。同时,由于所搜索的字符串中含有换行符'\n',因此向re.compilel()传入re.DOTALL参数,以使'.'字符能够匹配所有字符,包括换行符'\n'。这样我们匹配创建Pattern对象为:
newre = re.compile('[A-Z][^.]*blog[^.]*[.]', re.DOTALL) # [A-Z]表示匹配句子开头的大写字母, [^.]表示不匹配'.'符号, [.]表示匹配句子结尾的'.'号 newre.findall(text) # 进行匹配 # 结果为: ['Today I registered my personal blog in the cnblogs and wrote my first essay.', "So I've documented the problem and the solution in this blog post and \nshared it for reference to others who are having the same problem.", 'Some additional \nrelated thoughts and ideas will be added to this blog later.'] # 这其中的'\n'就是换行符, 它在字符串中是不显示的, 但是匹配结果中又显示出来了
这个正则表达式是能够匹配完整句子的,不用担心句子中间的大写字母会使句子只匹配一小部分。因为python的正则表达式默认是’贪心‘匹配的,即在有二义的情况下,它们会尽可能匹配最长的字符串。在这里的话就是完整的句子。非贪心匹配的话在分组后面加个'?'即可。
出处:https://www.cnblogs.com/blogLYP/p/17080272.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数