Python正则表达式简介
文章插图
假设你要根据给定的查询搜索某个内容 。 如果你只依靠一个字符串 , 你就得不到你想要的东西 。 那么 , 如何在海量信息中寻找你需要的东西呢?
当然 , 你需要一个模式来识别你想要查找的字符串 。 为此 , 我们可以使用正则表达式(Regular Expression , Regex) 。
在本文中 , 我将向你展示它的概念和应用 , 以解决数据科学中的问题 , 特别是使用Python对文本进行预处理 。
大纲我将本文分为两个部分:
- 正则表达式的概念
- 正则表达式的应用
它由特殊字符序列组成 , 因此我们可以根据需要使用它来匹配任何术语 。 这里有几个你可以使用的特殊字符 ,
- 点符号(.)匹配字符串中的任何字符 ,
- 插入符号(^)与字符串的开头匹配 ,
- 美元符号($)与字符串的结尾匹配 ,
- 星号(*)与前一个字符的模式重复零次或多次匹配 ,
- 加号(+)匹配前一个字符的一个或多个重复 ,
- 问号(?)匹配上一个字符的0或1个重复 ,
- 花括号{m , n}将匹配前一个字符的m或n个重复 ,
- 如果要使用标点符号 , 可以使用反斜杠(\) , 但它也是一个特殊字符 。 例如 , 为了匹配$ , 你应该在“\$”这样的字符前面添加一个反斜杠 ,
- 方括号([])只能用于包含与字符串匹配的某些字符 。 假设你想找到包含a、i和r的单词 , 可以使用类似[air]的模式 。
- \d将匹配任何数字
- \s将匹配空白字符
- \w将匹配任何字符
- \D匹配除数字外的字符
- \S匹配除空格外的字符
- \W匹配除字符外的字符
模式的组合也是可以的 , 因为有一条规则说 ,
如果一个模式与一个模式结合 , 就会产生另一个模式 。
正则表达式的应用在你了解了Regex的概念之后 , 现在让我们看看如何将其应用于处理文本 。
第一种方法是删除我们不用于处理文本的术语 。 假设你要对tweet集合进行文本挖掘 。 因此 , 在挖掘tweet之前 , 必须先对它们进行预处理 , 因为我们希望使我们的计算更有效 , 并避免其中任何无意义的信息 。 例如 , 你有这样一条微博 ,
#Nasional Wapres: Jumlah Orang Miskin Bertambah Gara-Gara Pandemi Covid-19
有几个术语你想删除 , 比如提及 , 标签 , 链接等 。 在Python中 , 我们可以使用一个名为sub的方法从re库中删除这些术语 。我们可以将参数设置到函数中 , 例如regex格式的模式、用于替换术语的字符串 , 最后是要处理的字符串 。
re.sub(pattern, replacement, data) - pattern: 正则表达式的模式- replacement: 要替换的字符串- data: 要处理的变量或字符串
通过使用这个函数 , 我们可以像这样使用它import re# 原始微博tweet = "#Nasional Wapres: Jumlah Orang Miskin Bertambah Gara-Gara Pandemi Covid-19 "# 使用正则表达式进行预处理tweet = re.sub("#\w+", "", tweet)tweet = re.sub("https*.+", "", tweet)print(tweet)# 这是结果,#Wapres: Jumlah Orang Miskin Bertambah Gara-Gara Pandemi Covid-19
- 想自学Python来开发爬虫,需要按照哪几个阶段制定学习计划
- 未来想进入AI领域,该学习Python还是Java大数据开发
- 2021年Java和Python的应用趋势会有什么变化?
- 非计算机专业的本科生,想利用寒假学习Python,该怎么入手
- 用Python制作图片验证码,这三行代码完事儿
- 历时 1 个月,做了 10 个 Python 可视化动图,用心且精美...
- 为何在人工智能研发领域Python应用比较多
- 对于非计算机专业的同学来说,该选择学习Python还是C
- 学习完Python之后,如何向人工智能领域发展
- 大数据专业本科生选择主攻Python语言,如何提升就业竞争力