最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章詳細講解正則表達式庫和第三方庫

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

一、正則表達式庫

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

1.匹配字符串

match()函數(shù)

在re模塊中,re.match(參數(shù)1, 參數(shù)2)會嘗試從字符串的第一個字符開始匹配指定模式,只有當模式在字符串起始位置完全匹配時才返回參數(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(正則表達式)的內(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.正則表達式

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

表示字符范圍:

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

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

^      # 匹配字符串的起始位置
$      # 匹配字符串的結(jié)束位置
*      # 匹配前面的子表達式零次或多次
+      # 匹配前面的子表達式一次或多次
?      # 匹配前面的子表達式零次或一次
{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.貪婪模式和非貪婪模式

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

示例:

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

4.或和組

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

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

在正則表達式中,豎線|用于表示 "或" 關(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)先級較低,通常需要用括號進行分組以明確匹配范圍,多個分支按從左到右的順序進行匹配,一旦找到匹配項就停止搜索。因此,較長或更具體的模式應放在前面,在字符類[]內(nèi)部,|表示普通字符而非 "或" 操作符。

"組"的類型與應用

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

示例:

# 數(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)建預編譯的模式對象:

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

二、第三方庫

1.第三方庫的介紹

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

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

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

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

科學計算與工程領(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

 更新當前pip工具。

5.pip工具的常用命令

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

6.Pyinstaller庫

1.Pyinstaller庫的介紹和安裝

PyInstaller 是一個開源的 Python 庫,能夠?qū)?Python 腳本打包成獨立的可執(zhí)行文件(.exe、.app 等),無需目標機器安裝 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í)行文件圖標的實用參數(shù),在程序窗口中添加圖標。

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

總結(jié) 

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

相關(guān)文章

  • 常用正則表達式 整理篇

    常用正則表達式 整理篇

    正則表達式用于字符串處理,表單驗證等場合,實用高效,但用到時總是不太把握,以致往往要上網(wǎng)查一番。我將一些常用的表達式收藏在這里,作備忘之用。本貼隨時會更新。
    2009-02-02
  • 最全最實用的正則表達式大全分享

    最全最實用的正則表達式大全分享

    正則式太難學,而且容易忘記 。很多不太懂正則的朋友,在遇到需要用正則校驗數(shù)據(jù)時,往往是在網(wǎng)上去找很久,結(jié)果找來的還是不很符合要求。所以我最近把開發(fā)中常用的一些正則表達式整理了一下,在這里分享一下。給自己留個底,也給朋友們做個參考。
    2015-10-10
  • asp 正則 過濾重復字符串的代碼

    asp 正則 過濾重復字符串的代碼

    asp下過濾重復字符串的代碼,有時候我們需要過濾一些重復的字符串,下面的代碼即可解決這個問題。
    2009-10-10
  • 正則表達式grep用法詳解

    正則表達式grep用法詳解

    grep是一種文本過濾工具,接下來通過本文給大家介紹正則表達式grep用法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-07-07
  • PHP preg match正則表達式函數(shù)的操作實例

    PHP preg match正則表達式函數(shù)的操作實例

    在php中preg_match()函數(shù)是用來執(zhí)行正則表達式的一個常用的函數(shù)。本文給大家介紹PHP preg match正則表達式函數(shù)的操作實例,需要的朋友參考下
    2016-04-04
  • php半小時精通正則表達式

    php半小時精通正則表達式

    php半小時精通正則表達式...
    2006-11-11
  • js正則表達式之exec方法講解

    js正則表達式之exec方法講解

    該函數(shù)通過對指定你的字符串進行一次匹配檢測,獲取字符串中的第一個與正則表達式的內(nèi)容,并且將匹配的內(nèi)容和子匹配的結(jié)果存放在返回數(shù)組中
    2012-10-10
  • js 常用正則表達式表單驗證代碼

    js 常用正則表達式表單驗證代碼

    js 常用正則表達式表單驗證代碼,以后大家就可以直接使用了。
    2009-12-12
  • javascript 手機號碼正則表達式驗證函數(shù)

    javascript 手機號碼正則表達式驗證函數(shù)

    隨著手機號碼段的不斷增加,以前網(wǎng)上的手機號碼驗證函數(shù)都不能那么完美的支持了,這里腳本之家編輯特為大家準備的一個簡單的正則與手機驗證的函數(shù)分析。
    2009-12-12
  • 無殤 javascript正則練習器

    無殤 javascript正則練習器

    無殤寫的javascript正則練習器,比較不錯,最后生成替換參數(shù),美中不足的就是替換無法使用,本人也試著修改因為替換參數(shù)過多而無法實現(xiàn),希望會的朋友修正一下
    2007-06-06

最新評論

寻乌县| 耒阳市| 裕民县| 长顺县| 彭水| 阿尔山市| 章丘市| 曲水县| 牟定县| 教育| 安国市| 娄烦县| 巫山县| 商水县| 鸡泽县| 郁南县| 塘沽区| 西林县| 洮南市| 凌云县| 麦盖提县| 沾益县| 瑞安市| 宜川县| 乌拉特前旗| 兴城市| 海丰县| 赤城县| 凤台县| 咸宁市| 湛江市| 疏附县| 景东| 荃湾区| 乳山市| 宜黄县| 咸丰县| 华容县| 佛坪县| 惠东县| 锦州市|