有时候我们需要在大量文本中找到需要的数据内容,这就需要用到正则表达式。例如:str='您本月共消费产品12件,总金额1087.78元。如果有任何疑问,请将问题发送至邮箱XXX@sad.com。或者打电话XXX。我们的工作人员会在第一时间针对您的信件给您答复。copyright2018 wudh hhcd.。'我们要从以上一段话中找到销量,金额,电话和邮箱,用于数据处理和分析,如果这样的原始数据很庞大,就需要通过一些技巧把这些数据迅速提炼出来。
工具/原料
1
Python
2
数据源
方法/步骤
1
导入正则包,并读取需要分析的数据。import re
2
获取消费量的数据。可以观察到消费量的数据是介于“消费产品”和“件”之间。因此可以用贪婪匹配,利用字符(.+?)来获取所有的“消费产品”和“件”之间的数据。注意:不能用(.*)或者(.+),这样的话,就取介于后面的“信件”与“消费产品”之间的数据了。cost=re.findall(r'消费产品(.+?)件', str)
3
获取消费金额。同样地,使用money=re.findall(r'总金额(.+?)元', str)print(money)
4
提取邮箱数据。注意到邮箱在“邮箱”与“。”之间。所以:email=re.findall(r'邮箱(.+?)。', str)print(email)
5
注意到邮箱的组成格式是多个字符或数字符号+‘@’+数字或字母+'.'+'com|cn‘等组成。邮箱后缀根据实际情况添加进去。这里有一个通用的匹配方法。email=re.findall(r'[0-9a-zA-Z.]+@[0-9a-zA-Z.]+?com',str)print(email)
6
匹配电话号码。电话号码由数字-数字-数字组成,所以:tel=re.findall(r'[0-9]+-[0-9]+-[0-9]+',str)print(tel)
上一篇:python如何使用正则表达式
下一篇:正则表达式的学习及简单应用