环湖医院数据中心一文讲清楚Python正则表达式(全代码附8个常用实例)
各位知友中午好,我是环湖医院数据中心的huanhu_data,我们已经介绍了网络爬虫和中文英文的文本分析飞时过:中文文本数据分析(二)利用贝叶斯算法进行情感分析飞时过:python网络爬虫爬取环湖医院二维码和环湖医院最新招聘简章 文章里面或多或少涉及到了正则化表达式的问题,很多医生给环湖医院数据中心联系说想让我从头讲讲python的正则化表达式,今天我就满足大家的要求,从头讲讲,讲完保准大家能使用。 正则表达式的重要性 在过去几年中,通用编程语言在数据科学和机器学习中的使用发生了巨大变化。情况并非总是如此——十年前,这个想法会遇到很多怀疑的眼睛! 这意味着更多的人/组织正在使用 Python/JavaScript 等工具来解决他们的数据需求。这就是正则表达式变得非常有用的地方。在大多数这些工具中,正则表达式通常是数据清理和整理的默认方式。无论是从网页中提取文本的特定部分、理解 twitter 数据还是为文本挖掘准备数据——正则表达式是所有这些任务的最佳选择。 鉴于它们的适用性,了解它们并适当地使用它们是有意义的。 什么是正则表达式以及它是如何使用的? 简而言之,正则表达式是一个字符序列,主要用于查找和替换字符串或文件中的模式。正如我之前提到的,大多数编程语言都支持它们,例如python、perl、R、Java 和许多其他语言。因此,学习它们有多种帮助(稍后会详细介绍)。 正则表达式使用两种类型的字符: a) 字符:顾名思义,这些字符有特殊的含义,类似于通配符中的*。 b) 文字(如 a,b,1,2…) 在 Python 中,我们有模块“ re ”可以帮助处理正则表达式。所以你需要先导入库re才能在 Python 中使用正则表达式。
正则表达式最常见的用途是:搜索字符串(搜索和匹配)查找字符串 (findall)将字符串分解为子字符串(拆分)替换字符串的一部分(子) 让我们看看库“ re ”提供的执行这些任务的方法。 ’re’ 包提供了多种方法来对输入字符串执行查询。以下是最常用的方法,我将讨论:re.match()re.search()re.findall()re.split()re.sub()re.compile() 今天环湖医院数据中心就带大家看看这些python函数。 re.match(pattern, string): 如果匹配出现在字符串的开头,则此方法会查找匹配项。例如,在字符串 ‘AV Analytics AV’ 上调用 match() 并查找模式 ‘AV’ 将匹配。但是,如果我们只查找 Analytics,则模式将不匹配。现在让我们在 python 中执行它。
我们执行这个match函数可以看到print出来的并不是匹配的结果,下面的才是
另外注意的是match函数只能从开头匹配,不是开头的匹配不到
在上面你可以看到字符串中匹配模式 ‘AV’ 的开始和结束位置,有时它在对字符串进行操作时有很大帮助。
re.search(pattern, string): 它类似于 match() 但它不限制我们只能在字符串的开头查找匹配项。与之前的方法不同,这里搜索模式 ‘Analytics’ 将返回匹配项。
在这里你可以看到, search() 方法能够从字符串的任何位置找到一个模式,但它只返回搜索模式的第一次出现。 re.findall (pattern, string): 它 有助于所有匹配模式的列表。它没有从开始或结束搜索的限制。如果我们使用 findall 方法在给定字符串中搜索“AV”,它将返回两个出现的 AV。在搜索字符串时,我建议您始终使用re.findall() ,它可以像 re.search() 和 re.match() 一样工作。
re.split(pattern, string, [maxsplit=0]): 此方法有助于 通过给定模式的出现来拆分字符串。
上面,我们用“y”分割了字符串“Analytics”。方法 split() 有另一个参数“ maxsplit ”。它的默认值为零。在这种情况下,它会执行可以完成的最大拆分,但是如果我们为 maxsplit 赋值,它将拆分字符串。让我们看看下面的例子:
re.sub(pattern, repl, string): 它有助于搜索模式并替换为新的子字符串。如果未找到模式, 则返回字符串不变。
re.compile(pattern, repl, string): 我们可以将一个正则表达式模式组合成模式对象,用于模式匹配。它还有助于在不重写模式的情况下再次搜索模式。
各种方法的快速回顾: 到目前为止,我们研究了使用固定字符的各种正则表达式方法。但是,如果我们没有固定的搜索模式,并且想要从字符串中返回特定的字符集(由规则定义)怎么办?不要被吓倒。这可以通过在模式运算符(和文字字符)的帮助下定义表达式来轻松解决。让我们看看最常见的模式运算符。 最常用的运算符有哪些? 正则表达式可以指定模式,而不仅仅是固定字符。以下是最常用的运算符,它们有助于生成表达式以表示字符串或文件中所需的字符。它通常用于网页抓取和文本挖掘以提取所需的信息。操作符描述.与除换行符 ‘\n’ 之外的任何单个字符匹配。?将模式的 0 或 1 次匹配到其左侧+模式在其左侧出现 1 次或多次*模式在其左侧出现 0 次或多次\w与字母数字字符匹配,而 \W(大写 W)匹配非字母数字字符。\d匹配数字 [0-9] 和 /D(大写 D)匹配非数字。\s匹配单个空白字符(空格、换行符、回车、制表符、表单)和 \S(大写 S)匹配任何非空白字符。\b词和非词之间的边界和/B与/b相反[..]匹配方括号中的任何单个字符,[^..] 匹配非方括号中的任何单个字符\它用于特殊含义的字符,如 \。匹配句点或 \+ 表示加号。^ 和 $^ 和 $ 分别匹配字符串的开头或结尾{n,m}如果我们将其写为 {,m} ,则匹配至少 n 次和最多 m 次出现的前一个表达式,那么它将返回至少任何最小出现次数到最大 m 次前一个表达式。a| b匹配 a 或 b( )对正则表达式进行分组并返回匹配的文本\t、\n、\r匹配制表符、换行符、返回 下面我们送佛送到家,把一些例子给大家 问题 1:拆分字符串 环湖医院数据中心给大家提供三种场景 场景 1 提取每个字符(使用“ \w ” )
场景 2 提取每个单词 (使用“ + ” )
问题2:返回每个单词的前两个字符
问题 3:返回给定电子邮件 ID 的域类型
问题 4:从给定字符串中识别年月日,并且只返回年份 这里我们将使用“ \d ”来提取数字。
问题 5:返回字符串中以音开头的所有单词
问题 6:验证电话号码(电话号码必须为 10 位数字,以 8 或 9 开头) 我们在列表“li”中有一个电话号码列表,在这里我们将使用常规验证电话号码
问题 7:用多个分隔符分割一个字符串
问题 8:从 HTML 文件中检索信息 我们学会了上面的内容就可以在网络爬虫领域任意驰骋了,我们爬取一下环湖医院大型医院巡查工作圆满结束的报道
我们按箭头所以的标识符进行正则化匹配 result=re.findall(r'<span style=”font-size:16px;”>(.*)</span>’,content.text) print(result)
得到的就是这样的结果,怎么样,一文就帮您解决了python正则化,网络爬虫,请大家多多支持点赞,谢谢各位老师!
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/82424.html