Python使用正则进行字符串提取和清洗
程序员文章站
2022-04-17 09:47:57
文章目录一、正则表达式1、规范表示2、数量表示3、逻辑运算符二、Python正则表达式模块 - re三、字符串清洗1、清洗字符串中的数字2、清除网址中的垃圾字符三、字符串提取1、提取字符串中的全部正整数2、提取字符串中的全部实数3、统计文件中全部数字之和一、正则表达式1、规范表示2、数量表示说明:X表示一组规范3、逻辑运算符说明:X、Y表示一组规范二、Python正则表达式模块 - rere.match #从头匹配re.search #全局匹配第一个符合...
文章目录
一、正则表达式
1、规范表示
2、数量表示
-
说明:X表示一组规范
3、逻辑运算符
-
说明:X、Y表示一组规范
二、Python正则表达式模块 - re
-
re.match
#从头匹配 -
re.search
#全局匹配第一个符合的字符串 -
re.findall
#匹配全部,放到列表 -
re.finditer
#找到匹配的所有子串,并把它们作为一个迭代器返回。这个匹配是从左到右有序地返回。如果无匹配,返回空列表。用for 循环出匹配到值。 -
re.split
#匹配到到值进行分割。 -
re.sub
# 以正则表达式为基础的替换工作。
三、字符串清洗
1、清洗字符串中的数字
2、清除网址中的垃圾字符
网址中包含垃圾字符,比如ht%$tp:%$$%##%/ / w%##%w%w.%%$$%##%16%$$3.c##om
,包含的垃圾字符有空格、%、$与#,需要清洗掉,变成规范的网址:http://www.163.com
。
四、字符串提取
1、提取字符串中的全部正整数
2、提取字符串中的全部实数
text = 'amy68.5mike-90.5brian67.8green56.2smith60brown-90' re.findall(r'(\+*\-*\d+\.*\d*)', text) ['68.5', '-90.5', '67.8', '56.2', '60', '-90']
3、统计文件中全部数字之和
-
创建文本文件 - 译诗录.txt
-
编写程序 - 统计字符串中数字之和.py
-
运行程序,查看结果
4、获取字符串中的邮箱、手机号码、网址和IP地址
-
创建程序 - 获取字符串中特殊数据.py
# -*- coding: utf-8 -*- """
Created on Tue Oct 13 15:19:56 2020
@author: howard
""" import re def find_all_emails(text): """
:param text: 文本
:return: 返回电子邮件列表
""" emails = re.findall(r'[a-z0-9\.\-+_]+@[a-z0-9\.\-+_]+\.[a-z]+', text) return emails def find_all_mobiles(text): """
:param text: 文本
:return: 返回手机号列表
""" mobiles = re.findall(r'1[3456789]\d{9}', text) return mobiles def find_all_urls(text): """
:param text: 文本
:return: 返回 url 列表
""" urls = re.findall(r'[a-zA-Z]+://[^\s]*', text) return urls def find_all_ips(text): """
:param text: 文本
:return: 返回 ip 列表
""" ips = re.findall(r'\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b', text) return ips if __name__ == '__main__': content = "Please 47.92.2.58:443 contact 127.0.0.1 15988455173 us 18720071239 \
https://blog.csdn.net/u013421629/ at https://www.yiibai.com/ contact@qq.com \ for further information 375912345@qq.com You can also give feedback at feedback@yiibai.com"
emails = find_all_emails(content) print('邮箱:{}'.format(emails)) moblies = find_all_mobiles(content) print('手机:{}'.format(moblies)) urls = find_all_urls(content) print('网址:{}'.format(urls)) ips = find_all_ips(content) print("IP地址:{}".format(ips))
-
运行程序,查看结果
五、统计子串出现次数
1、利用findall()函数
2、利用subn()函数
本文地址:https://blog.csdn.net/howard2005/article/details/109047858
上一篇: 联想一键还原系统的操作用方法
推荐阅读
-
使用python进行文本预处理和提取特征的实例
-
Python使用re模块正则提取字符串中括号内的内容示例
-
Shell中使用grep、sed正则提取和替换字符串
-
使用python进行文本预处理和提取特征的实例
-
Python使用re模块正则提取字符串中括号内的内容
-
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例_javascript技巧
-
Python使用re模块正则提取字符串中括号内的内容
-
Python使用正则进行字符串提取和清洗
-
Shell中使用grep、sed正则提取和替换字符串
-
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例_javascript技巧