关注

python库(续)

正则表达式库

正则表达式(简称 ​​Regex​​ 或 ​​Regexp​​)是一种强大的文本处理工具,用于​​对字符串进行模式匹配、查找、替换、分割等操作​​。在python中我们通过re库来实现它。

(1)匹配字符串

通过以下函数可以从字符串中查找符合正则表达式的子串​​。

  • match()

match(参数1,参数2)

功能:表示从参数2(字符串)中(从第一个字符开始)查找满足参数1(正则表达式)的内容。

返回值:匹配失败返回None,匹配成功返回一个 ​​匹配对象(Match object)

import re

result = re.match(r'Hello', 'Hello, world!')
print(result)

text = "Hello, world!"
result1 = re.match(r'world', text)  # 尝试匹配 'world',但它不在开头
print(result1)

 

  •  search

search(参数1,参数2)

功能:表示从参数2(字符串)中查找满足参数1(正则表达式)的内容,果匹配多个参数,只返回第一个的信息

import re

sentence = "今天天气很好,适合出去玩"
result = re.search(r'天气', sentence)
print(result)

sentence1 = "今天天气很好,适合出去玩天气"
result1 = re.search(r'天气', sentence1)
print(result1)

  • findall()

findall(参数1,参数2)

功能:查找所有符合某个正则表达式模式的子串,并以列表的形式返回所有匹配结果。

import re

sentence = "今天天气很好,适合出去玩天气"
result1 = re.findall(r'天气', sentence)
print(result1)

(2)正则表达式

通过正则表达式我们可以通过各种字符去筛选我想要的信息。

  • 表示字符范围

[xyz]: 表示匹配所包含的任意一字符。

[a-z]:表示匹配指定范围内的所有字符。

import re

sentence = "Python is a programming language"
result1 = re.findall('[a-z]', sentence)
#输出为['y', 't', 'h', 'o', 'n', 'i', 's', 'a', 'p',
#       'r', 'o', 'g', 'r', 'a', 'm', 'm', 'i', 'n', 'g', 'l', 'a',
#       'n', 'g', 'u', # 'a', 'g', 'e'] 
result2 = re.findall('[abc]', sentence)
#输出为 ['a', 'a', 'a', 'a']


  • 表示字符出现的次数
*匹配前面的元素 ​​0 次或多次​ab* 可以匹配 aababbabbb...
+匹配前面的元素 ​​1 次或多次​ab+ 可以匹配 ababb, 但不能匹配 a
?匹配前面的元素 ​​0 次或 1 次​​(即可有可无)colou?r 可以匹配 color 和 colour
{n}匹配前面的元素 ​​恰好 n 次​a{3} 匹配 aaa
{n,}匹配前面的元素 ​​至少 n 次​a{2,} 匹配 aaaaa, ...
{n,m}匹配前面的元素 ​​n 到 m 次​a{2,4} 匹配 aaaaaaaaa
^匹配字符串的​​开头​^Hello 匹配以 "Hello" 开头的字符串
$匹配字符串的​​结尾​world$ 匹配以 "world" 结尾的字符串
import re

sentence = "Python is a programming languaaaage"
result1 = re.findall('am+ing langua{1,3}', sentence)
result2 = re.findall('a{2}', sentence)
result3 = re.findall('^[P]y', sentence)
print(result1,'\n',result2,'\n',result3)

 

  • 表示同一类字符
表达式含义等价写法示例
\d​数字字符​​(digit)[0-9]"1""5"
\D​非数字字符​​(非 \d[^0-9]"a"" ""@"
\w​单词字符​​(word,包括字母、数字、下划线)[a-zA-Z0-9_]"a""3""_"
\W​非单词字符​​(非 \w[^a-zA-Z0-9_]" ""@""+"
\s​空白字符​​(space,包括空格、制表符、换行等)[ \t\n\r\f\v]" ""\t""\n"
\S​非空白字符​​(非 \s[^ \t\n\r\f\v]"a""1""@"
\b​单词边界​​(\w 和 \W 之间的位置)\bword\b 匹配 "word" 但不匹配 "keyword"
\B​非单词边界​​(\w 和 \w 或 \W 和 \W 之间的位置)\Bcat\B 匹配 "scatter" 中的 "cat"
\n​换行符​​(LF, Line Feed)a\nb 匹配 "a" 后换行再 "b"
\r​回车符​​(CR, Carriage Return)a\r\nb 匹配 Windows 换行
\t​制表符​​(Tab)a\tb 匹配 "a b"(Tab 分隔)
\f​换页符​​(Form Feed)很少使用
\v​垂直制表符​​(Vertical Tab)很少使用
.用于匹配 ​​除换行符‘\n'和'\r'以外的任意单个字符
import re

pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
email = "邮箱名:[email protected]"
email1 = re.findall(pattern,email)
print(email1)

(3)贪婪模式和非贪婪模式

贪婪模式和非贪婪模式是正则表达式中两种重要的匹配策略,它们决定了量词(如 *+?{})如何匹配文本。

贪婪模式 (Greedy Mode)

​特点​​:尽可能多地匹配字符(默认行为)

​量词​​:* - 匹配前一个字符0次或多次(尽可能多),+ - 匹配前一个字符1次或多次(尽可能多),? - 匹配前一个字符0次或1次(尽可能多),{n,m} - 匹配前一个字符n到m次(尽可能多)

非贪婪模式 (Lazy Mode/Non-greedy Mode)

​特点​​:尽可能少地匹配字符

​表示方法​​:在量词后加 ?

​量词​​:*? - 匹配前一个字符0次或多次(尽可能少),+? - 匹配前一个字符1次或多次(尽可能少),?? - 匹配前一个字符0次或1次(尽可能少),{n,m}? - 匹配前一个字符n到m次(尽可能少)

import re

# 贪婪模式
a=re.findall(r'<.*>', '<div>content</div>')  # 匹配整个字符串
print(a)
# 非贪婪模式
b=re.findall(r'<.*?>', '<div>content</div>')  # 匹配 ['<div>', '</div>']
print(b)

(4)sub()和compile()方法

re.sub() 和 re.compile() 是 Python re 模块中两个重要的正则表达式方法,它们分别用于字符串替换和正则表达式预编译。

import re

text = "Python 2.7 is old, use Python 3.10"
result = re.sub(r'\d\.\d+', '3.11', text)
print(result)  # 输出: "Python 3.11 is old, use Python 3.11"
import re

pattern = re.compile(r'\d+')  # 预编译正则表达式

result1 = pattern.findall("123 abc 456")
print(result1)  # 输出: ['123', '456']

result2 = pattern.sub('X', "123 abc 456")
print(result2)  # 输出: "X abc X"

第三方库

第三方库是 Python 生态系统的核心组成部分,它们极大地扩展了 Python 的功能和应用范围。

由 Python 社区开发者(非 Python 官方团队)创建和维护的 Python 模块/包,用于解决特定领域的问题或提供额外功能。

(1)第三方库的安装

在python中我们可以通过python自带的pip工具安装第三方库

# 查看已安装版本
pip show package_name

# 升级特定包
pip install --upgrade package_name

# 指定版本安装
pip install package_name==1.2.3
# 使用清华源
pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple package_name

# 使用阿里云源
pip install 包名 -i https://mirrors.aliyun.com/pypi/simple/ package_name

 可以直接在pycharm的终端使用命令安装但是必须确认想要安装的python版本通过python --version可以查看版本。

pip uninstall 包名 #卸载安装包

Pyinstaller库

PyInstaller 是一个流行的Python打包工具,可以将Python脚本转换为独立的可执行文件(Windows的.exe,macOS的.app,Linux的二进制文件),无需用户安装Python解释器。

 在终端输入以下代码可以将python代码打包成程序

# 打包为单个文件
pyinstaller --onefile your_script.py

# 打包为单个文件且不显示控制台窗口(适合GUI应用)
pyinstaller --onefile --windowed your_script.py

# 自定义图标
pyinstaller --onefile --windowed --icon=app.ico your_script.py

# 自定义输出名称
pyinstaller --name=MyApp your_script.py

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq1851417332/article/details/149665695

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--