欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一篇文章詳細(xì)講解正則表達(dá)式庫和第三方庫

 更新時間:2025年09月05日 11:00:48   作者:小王愛學(xué)人工智能  
正則表達(dá)式是一種強大的工具,用于匹配和搜索字符串模式,這篇文章主要介紹了正則表達(dá)式庫和第三方庫的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、正則表達(dá)式庫

正則表達(dá)式是一種表達(dá)式語句,用于對字符串類型數(shù)據(jù)進(jìn)行操作,包含從字符串中篩選出滿足表達(dá)式條件的信息、將字符串中的內(nèi)容進(jìn)行替換等功能,在python語言中用re庫實現(xiàn)正則表達(dá)式,用import將re庫導(dǎo)入代碼程序中。

1.匹配字符串

match()函數(shù)

在re模塊中,re.match(參數(shù)1, 參數(shù)2)會嘗試從字符串的第一個字符開始匹配指定模式,只有當(dāng)模式在字符串起始位置完全匹配時才返回參數(shù)1的內(nèi)容,否則返回None。

使用形式:

match(參數(shù)1,參數(shù)2)

示例:

import re
# 從起始位置匹配成功?
print(re.match(r'abc', 'abcdef'))  #輸出為 <re.Match object; span=(0, 3), match='abc'>?
# 非起始位置有匹配但返回None?
print(re.match(r'cde', 'abcdef'))  #輸出為 None

search()函數(shù)

search()函數(shù)的功能是在整個字符串中查找第一個匹配項。search()會從字符串的起始位置開始對比,直到找到第一個符合的子串,然后返回包含匹配成功的信息;如果遍歷完整個字符串仍未找到匹配,則返回None。

使用形式:

search(參數(shù)1,參數(shù)2)

示例:

import re
# 查找第一個數(shù)字序列?
text = '用戶ID: 12345, 訂單號: 67890'?
match = re.search(r'\d+', text)?
if match:?
    print(f"找到匹配: {match.group()}")  # 找到匹配: 12345?
    print(f"匹配位置: {match.span()}")    # 匹配位置: (6, 11)

findall()函數(shù)

使用形式:

findall(參數(shù)1,參數(shù)2)

 功能是從參數(shù)2(字符串類型數(shù)據(jù))中查找滿足參數(shù)1(正則表達(dá)式)的內(nèi)容,如果匹配了多個參數(shù)1,則返回匹配成功的全部信息。

示例:

import re
text = '用戶A: 13800138000, 用戶B: 13900139000, 用戶C: 13700137000'
# 提取所有手機號
phones = re.findall(r'1[3-9]\d{9}', text)
print(phones)  # ['13800138000', '13900139000', '13700137000']

2.正則表達(dá)式

 正則表達(dá)式 (Regular Expression) 是一種強大的文本處理工具,它通過定義特定模式來匹配、查找和替換文本。在 Python 中,無論是標(biāo)準(zhǔn)庫re還是第三方庫regex,都提供了豐富的 API 支持,使開發(fā)者能夠高效處理各種復(fù)雜的文本場景。本文將從基礎(chǔ)語法到高級應(yīng)用,系統(tǒng)介紹 Python 中正則表達(dá)式的核心概念、使用技巧及最佳實踐。

表示字符范圍:

[abc]  # 匹配a、b或c中的任意一個字符
[^abc] # 匹配除a、b、c之外的任意字符
[a-z]  # 匹配任意小寫字母
[A-Z]  # 匹配任意大寫字母
[0-9]  # 匹配任意數(shù)字
[a-zA-Z0-9] # 匹配任意字母或數(shù)字

表示字符出現(xiàn)次數(shù):

^      # 匹配字符串的起始位置
$      # 匹配字符串的結(jié)束位置
*      # 匹配前面的子表達(dá)式零次或多次
+      # 匹配前面的子表達(dá)式一次或多次
?      # 匹配前面的子表達(dá)式零次或一次
{n}    # 精確匹配n次
{n,}   # 至少匹配n次
{n,m}  # 匹配至少n次且最多m次

表示同一類字符:

\d     # 等價于[0-9],匹配任意數(shù)字
\D     # 等價于[^0-9],匹配任意非數(shù)字字符
\s     # 等價于[\t\n\r\f\v],匹配任意空白字符(空格、制表符、換行符等)
\S     # 等價于[^\t\n\r\f\v],匹配任意非空白字符
\w     # 等價于[a-zA-Z0-9_],匹配任意字母、數(shù)字或下劃線
\W     # 等價于[^a-zA-Z0-9_],匹配任意非字母、數(shù)字或下劃線字符
a*     # 匹配零個或多個a(如:'', 'a', 'aa', 'aaa'等)
a+     # 匹配一個或多個a(如:'a', 'aa', 'aaa'等)
a?     # 匹配零個或一個a(如:'', 'a')
a{3}   # 精確匹配3個a(如:'aaa')
a{3,}  # 匹配至少3個a(如:'aaa', 'aaaa', 'aaaaa'等)
a{3,5} # 匹配3到5個a(如:'aaa', 'aaaa', 'aaaaa')

3.貪婪模式和非貪婪模式

默認(rèn)情況下,量詞是貪婪的,即盡可能多地匹配字符。通過在量詞后添加?,可以將其變?yōu)榉秦澙纺J?,即盡可能少地匹配字符:

示例:

text = '<div>內(nèi)容</div>'
# 貪婪匹配(默認(rèn))
re.findall(r'<.*>', text)  # 結(jié)果: ['<div>內(nèi)容</div>']
# 非貪婪匹配
re.findall(r'<.*?>', text) # 結(jié)果: ['<div>', '</div>']

4.或和組

在 Python 正則表達(dá)式中,"或"和 "組"是構(gòu)建復(fù)雜模式的兩大核心機制。"或" 允許在模式中定義多個可選分支,而 "組" 則用于將多個字符作為一個整體處理,并支持捕獲匹配內(nèi)容。

"或" 操作符(|)的用法與特性

在正則表達(dá)式中,豎線|用于表示 "或" 關(guān)系,允許匹配多個模式中的任意一個。示例:

import re
pattern = re.compile(r'apple|banana')  # 匹配apple或banana
text = 'I like apple and banana'
print(pattern.findall(text))  # ['apple', 'banana']

 "或" 操作符的優(yōu)先級較低,通常需要用括號進(jìn)行分組以明確匹配范圍,多個分支按從左到右的順序進(jìn)行匹配,一旦找到匹配項就停止搜索。因此,較長或更具體的模式應(yīng)放在前面,在字符類[]內(nèi)部,|表示普通字符而非 "或" 操作符。

"組"的類型與應(yīng)用

使用()定義的捕獲組會保存匹配的子串,可通過索引或名稱引用

示例:

# 數(shù)字索引引用
pattern = re.compile(r'(\d{4})-(\d{2})-(\d{2})')
text = '2023-10-05'
match = pattern.match(text)
print(match.group(1))  # '2023'(年)
# 命名組引用
pattern = re.compile(r'(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})')
print(match.group('month'))  # '10'

多層嵌套時,索引按左括號出現(xiàn)的順序分配,在模式內(nèi)部使用\1\2等語法引用前面的捕獲組,使用(?:)定義的非捕獲組僅用于分組,不保存匹配結(jié)果。

5.sub()和compile()方法

sub()用于替換字符串中的匹配項,示例:

text = 'Hello 123, World 456'
pattern = re.compile(r'\d+')
print(pattern.sub('NUM', text))  # 'Hello NUM, World NUM'

compile()re模塊中的核心函數(shù),用于創(chuàng)建預(yù)編譯的模式對象:

import re
# 編譯正則表達(dá)式
pattern = re.compile(r'正則表達(dá)式模式')
# 使用模式對象進(jìn)行匹配
match = pattern.search('待匹配的文本')

二、第三方庫

1.第三方庫的介紹

在 Python 的技術(shù)生態(tài)中,第三方庫是連接基礎(chǔ)語法與實際應(yīng)用的橋梁。這些由全球開發(fā)者社區(qū)貢獻(xiàn)的代碼集合,將 Python 的靈活性與擴展性發(fā)揮到極致,使其能夠輕松應(yīng)對從簡單腳本到復(fù)雜系統(tǒng)的各類開發(fā)需求。本文將從定義本質(zhì)、分類體系、技術(shù)價值和選擇框架四個維度,全面剖析 Python 第三方庫的核心特征。

數(shù)據(jù)科學(xué)與分析領(lǐng)域:從采集到可視化的全流程工具

人工智能與機器學(xué)習(xí)領(lǐng)域:從模型訓(xùn)練到部署的全鏈路支持

自動化與運維領(lǐng)域:從腳本到系統(tǒng)的效率工具

科學(xué)計算與工程領(lǐng)域:從仿真到可視化的專業(yè)工具

游戲開發(fā)與創(chuàng)意編程領(lǐng)域:從 2D 到 3D 的開發(fā)工具

2.不同領(lǐng)域的第三方庫

Python 第三方庫的生態(tài)之所以強大,在于其覆蓋了幾乎所有技術(shù)領(lǐng)域的解決方案。從 Web 開發(fā)到人工智能,從數(shù)據(jù)分析到嵌入式開發(fā),每個領(lǐng)域都形成了各具特色的庫集群。本文將深入剖析六大主流領(lǐng)域的核心庫,解析其技術(shù)特點、適用場景及選型策略,為開發(fā)者提供全面的工具選擇參考。

Web 開發(fā)領(lǐng)域:從后端到前端的全棧工具鏈?

3.第三方庫的安裝

常見的有2種:

通過win+r輸入cmd打開命令指示符后寫入以下形式:

pip install 庫名

 但這樣通常下載很慢,因為這里用的是外網(wǎng),可以通過搜索中國網(wǎng)站下載庫會快很多。

例如:pip install  庫名稱 -i https://pypi.tuna.tsinghua.edu.cn/simple

再一種就是通過pycharm的解釋器下載第三方庫,與上述方法差不多。

 搜索所需要的第三方庫,可以在選項中輸入中國網(wǎng)站加快下載速度。

4.安裝報錯的解決方法

1.操作系統(tǒng)缺失支撐軟件

解決方法:通過error錯誤提示下載缺失的支撐軟件。

2.計算機的操作系統(tǒng)版本與第三方庫的版本之間存在不兼容的情況。

解決方法:使用命令:

pip install 庫名 == 版本號

3.pip工具版本過低。

解決方法:通過命令:

python -m pip install --upgrade pip

 更新當(dāng)前pip工具。

5.pip工具的常用命令

pip uninstall 庫名 #卸載庫
pip list        #列出所有已安裝的庫
pip show 庫名 #查看特定庫的詳細(xì)信息
pip download 庫名 #下載第三方庫安裝包但不安裝
-h  #獲取pip使用幫助

6.Pyinstaller庫

1.Pyinstaller庫的介紹和安裝

PyInstaller 是一個開源的 Python 庫,能夠?qū)?Python 腳本打包成獨立的可執(zhí)行文件(.exe、.app 等),無需目標(biāo)機器安裝 Python 解釋器或相關(guān)依賴庫。其工作原理是分析腳本的依賴關(guān)系,將 Python 解釋器、腳本本身及所有依賴文件打包到一個文件夾或單個可執(zhí)行文件中,實現(xiàn) "一次打包,到處運行" 的效果。

打開命令提示符(CMD)或 PowerShell?執(zhí)行安裝命令:

# 使用pip安裝最新版本
pip install pyinstaller

# 如需指定版本(例如5.13.2)
pip install pyinstaller==5.13.2

2.使用

PyInstaller 的命令結(jié)構(gòu)簡潔明了,核心語法為:

pyinstaller 代碼文件路徑+代碼文件名

3.其他Pyinstaller命令

-F:

使打包后只產(chǎn)生一個list文件夾,且文件夾中只存在一個打包后的可執(zhí)行文件。

pyinstaller -F 代碼文件路徑+代碼文件名

-i:

用于指定可執(zhí)行文件圖標(biāo)的實用參數(shù),在程序窗口中添加圖標(biāo)。

pyinstaller -i 代碼文件路徑+代碼文件名

總結(jié) 

到此這篇關(guān)于正則表達(dá)式庫和第三方庫的文章就介紹到這了,更多相關(guān)正則表達(dá)式庫和第三方庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 正則表達(dá)式基礎(chǔ)與常用驗證表達(dá)式

    正則表達(dá)式基礎(chǔ)與常用驗證表達(dá)式

    本文詳細(xì)講解了正則表達(dá)式的基礎(chǔ)知識與常用驗證表達(dá)式,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Java正則表達(dá)式入門學(xué)習(xí)

    Java正則表達(dá)式入門學(xué)習(xí)

    這篇文章主要介紹了Java正則表達(dá)式入門學(xué)習(xí)基礎(chǔ)知識,全面分析了表示匹配次數(shù)的符號使用方法,感興趣的小伙伴們可以參考一下
    2015-12-12
  • DW 查找某字符串前的所有字符的正則表達(dá)式

    DW 查找某字符串前的所有字符的正則表達(dá)式

    我使用DW 這個所見所得的編輯器來寫html時,喜歡寫上注釋,如<!-- header --> 等等的注釋,在一次比較大的改動時,需要批量查找替換,為了批量操作,于是我寫了一個正則表達(dá)式來進(jìn)行處理
    2012-10-10
  • JS 正則表達(dá)式(學(xué)習(xí)筆記2)匹配網(wǎng)址url參數(shù)

    JS 正則表達(dá)式(學(xué)習(xí)筆記2)匹配網(wǎng)址url參數(shù)

    呵呵,剛學(xué)習(xí)正則表達(dá)式,今天幫一個美女解決了個問題。感到很高興。先貼下今天都學(xué)了什么吧。不然忘記了。
    2010-05-05
  • UBB 轉(zhuǎn)換函數(shù)演示 (經(jīng)典論壇)

    UBB 轉(zhuǎn)換函數(shù)演示 (經(jīng)典論壇)

    [綠色]UBB 轉(zhuǎn)換函數(shù)演示 (經(jīng)典論壇)...
    2006-08-08
  • 使用Linux正則表達(dá)式靈活搜索文件中的文本

    使用Linux正則表達(dá)式靈活搜索文件中的文本

    作為一個Linux管理員,您需要對文本文件進(jìn)行處理。您可以使用不同的工具如grep、awk以及sed去查找包含特定文本串的文件。這里,我將介紹一種使用正則表達(dá)式,以靈活的方式,去搜索文件中的文本的方法。
    2015-10-10
  • SQL正則表達(dá)式和約束使用詳解

    SQL正則表達(dá)式和約束使用詳解

    這篇文章主要給大家介紹了關(guān)于SQL正則表達(dá)式和約束的相關(guān)資料,SQL正則表達(dá)式是一種功能強大的工具,能夠在文本數(shù)據(jù)中實現(xiàn)高效的模式匹配和數(shù)據(jù)提取,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • 最新評論