目錄
正規表示式實作重疊符合
正規表示式與正規表示式符合
正規表示式
首頁 後端開發 Python教學 python正規表示式如何實現重疊匹配

python正規表示式如何實現重疊匹配

Jul 25, 2022 pm 05:20 PM
python

本篇文章為大家帶來了關於Python的相關知識,主要介紹了python 正則表達式如何實現重疊匹配,具有很好的參考價值,下面一起來看一下,希望對大家有幫助。

python正規表示式如何實現重疊匹配

【相關推薦:Python3影片教學

正規表示式實作重疊符合

import regex
string = '100101010001'
str_re = '101'
print(regex.findall(str_re, string, overlapped=True))

#普通的re庫匹配,只能匹配一個'101'。

正規表示式與正規表示式符合

正規表示式

正規表示式可理解為資料篩選的表達式,是有限個原子和元字元組成。

原子:基本組成單位,每個表達式至少有一個原子

#通用字元組成原子原子表組成原子
#普通字符组成原子
pat1 = "abcd"
 
#非打印字符组成原子
pat2 = "\n"
 
#通用字符做原子
pat3 = "\w"
 
#原子表组成原子
pat4 = "py[abc]"
#可以匹配pya,pyb,pyc,但匹配pyab等原子表重复出现的情况失败
 
#原子表开头带 ^ 表示取反
pat5 = "py[^abc]"
#第三个位置匹配除了a,b,c外的任意一个字符
普通字元組成原子

非列印字元組成原子

(不印在輸出台的字元)

##\n :換行

\t:tab退格符號

\w:符合任意字母、數字、底線

\W:與\w相反

\d:符合任十進制數

\D:與\d相反

\s :符合任意空白字符,如空格、換行、縮排

\S:與\s相反

一組原子組成一個表,由[]宣告

表內原子優先權相等,但內容只出現依序

若原子表以^ 開頭,則表示取反

#元字元:正規表示式中具有特殊意義的字元

.匹配任意字符,除了換行符^匹配字串開始的位置#$符合字串結束的位置,當出現多組符合的符合時,傳回字串最後的那組符合##*#?{ j }{ j , }{ j , k }i | j( )
匹配0,1,n 次前面的原子【貪婪模式:盡可能多的匹配】
匹配0,1 次前面的原子【懶惰模式:精確匹配】
符合1,n 次前面的原子
前面的原子出現j 次
#前面的原子至少出現j 次
前面的原子至少出現j 次,至多出現k 次
符合i 或j ,若i 與j 同時出現,匹配i
組,限制這組資料的組合如()內所描述一樣,只傳回符合括號內描述的內容
模式修正符

#即函數中flag 位置的參數,在不改變正規表示式的情況下改變其意義,調整配對結果。

re.Ire.M#多行匹配re.L本地化識別匹配#re.Ure.S
##根據unicon字元匹配,影響\w \W
#符合包含換行符


    正規匹配
正規表示式是對字串進行模糊匹配,其中一個應用為正規匹配。正規匹配是python爬蟲的使用技術,用於在爬取的文字資訊中提取目標資訊。
  • 正規符合常用的函數:(呼叫正規表示式模組re)
  • #re.search(pat, str[, flag]) :掃描字串str,傳回pat的位置(第一次成功匹配的),flag用於控制正規表示式的匹配方式
  • import re
    str = 'python'
    pat = 'pytho[a-n]'
    print(re.search(pat, str))
  • re. match(pat, str[, flag])
  • :掃描字串str開始的位置,傳回pat的位置(第一次成功符合的),flag用來控制正規表示式的符合方式【若開始就不符合則結束,回傳none】
  • <pre class='brush:php;toolbar:false;'>import re str_1 = &amp;#39;hello world&amp;#39; str_2 = &amp;#39;world hello&amp;#39; pat = &amp;#39;world&amp;#39; print(re.match(pat, str_1)) print(re.match(pat, str_2))</pre>
re.complie(pat[, flag])
    :編譯正規表示式pat,傳回正規表示式物件
  • findall(str[, pos[, endpos]])
  • :符合所有,用清單傳回string中所有符合的子字串【不只第一次】,pos和endpos可指定在string中的起始位置

re.complie(pat).findall(str):全域匹配函數,符合str中所有符合pat的子字串,裝入一個列表回傳結果

###
import re
str = "hello world hello world hello world"
pat = "hello"
print(re.complie(pat).findall(str))
print(re.complie(pat).findall(str, 5, 15))
#########re.sub(pat, repl, str[, count[, flag]])###:替換字串中的符合項目【清洗資料】,可用count指定最大替換次數######
import re
str = "400-823-823"
pat = "-"
#短横改空格,最大替换次数2
str_new = re.sub(pat, " ", str, count=2)
###【相關推薦:###Python3影片教學### 】###

以上是python正規表示式如何實現重疊匹配的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

Rimworld Odyssey溫度指南和Gravtech
1 個月前 By Jack chen
初學者的Rimworld指南:奧德賽
1 個月前 By Jack chen
PHP變量範圍解釋了
4 週前 By 百草
撰寫PHP評論的提示
3 週前 By 百草
在PHP中評論代碼
3 週前 By 百草

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1604
29
PHP教程
1509
276
如何在Python中創建虛擬環境 如何在Python中創建虛擬環境 Aug 05, 2025 pm 01:05 PM

創建Python虛擬環境可使用venv模塊,步驟為:1.進入項目目錄執行python-mvenvenv創建環境;2.Mac/Linux用sourceenv/bin/activate、Windows用env\Scripts\activate激活;3.使用pipinstall安裝包、pipfreeze>requirements.txt導出依賴;4.注意避免將虛擬環境提交到Git,並確認安裝時處於正確環境。虛擬環境能隔離項目依賴防止衝突,尤其適合多項目開發,編輯器如PyCharm或VSCode也

如何在Python中的多個過程之間共享數據? 如何在Python中的多個過程之間共享數據? Aug 02, 2025 pm 01:15 PM

使用multiprocessing.Queue可在多個進程間安全傳遞數據,適合多生產者和消費者的場景;2.使用multiprocessing.Pipe可實現兩個進程間的雙向高速通信,但僅限兩點連接;3.使用Value和Array可在共享內存中存儲簡單數據類型,需配合Lock避免競爭條件;4.使用Manager可共享複雜數據結構如列表和字典,靈活性高但性能較低,適用於復雜共享狀態的場景;應根據數據大小、性能需求和復雜度選擇合適方法,Queue和Manager最適合初學者使用。

Python Boto3 S3上傳示例 Python Boto3 S3上傳示例 Aug 02, 2025 pm 01:08 PM

使用boto3上傳文件到S3需先安裝boto3並配置AWS憑證;2.通過boto3.client('s3')創建客戶端並調用upload_file()方法上傳本地文件;3.可指定s3_key作為目標路徑,若未指定則使用本地文件名;4.應處理FileNotFoundError、NoCredentialsError和ClientError等異常;5.可通過ExtraArgs參數設置ACL、ContentType、StorageClass和Metadata;6.對於內存數據,可使用BytesIO創建字

如何使用Python中的列表實現堆棧數據結構? 如何使用Python中的列表實現堆棧數據結構? Aug 03, 2025 am 06:45 AM

PythonlistScani ImplementationAking append () Penouspop () Popopoperations.1.UseAppend () Two -Belief StotetopoftHestack.2.UseP OP () ToremoveAndreturnthetop element, EnsuringTocheckiftHestackisnotemptoavoidindexError.3.Pekattehatopelementwithstack [-1] on

Python時間表庫示例 Python時間表庫示例 Aug 04, 2025 am 10:33 AM

使用Pythonschedule庫可輕鬆實現定時任務,首先通過pipinstallschedule安裝庫,接著導入schedule和time模塊,定義需要定時執行的函數,然後使用schedule.every()設置時間間隔並綁定任務函數,最後通過while循環中調用schedule.run_pending()和time.sleep(1)持續運行任務;例如每10秒執行一次任務可寫為schedule.every(10).seconds.do(job),支持按分鐘、小時、天、周等週期調度,也可指定具體

如何在崇高文本中運行Python代碼 如何在崇高文本中運行Python代碼 Aug 04, 2025 pm 04:25 PM

EnsurePythonisinstalledandaddedtoPATHbycheckingversioninterminal;2.Savefilewith.pyextension;3.UseCtrl Btorunviadefaultbuildsystem;4.CreateacustombuildsystemifneededbygoingtoTools>BuildSystem>NewBuildSystem,enteringthecorrectcmdforyourPythonvers

在Python中調試內存洩漏的常見策略是什麼? 在Python中調試內存洩漏的常見策略是什麼? Aug 06, 2025 pm 01:43 PM

Usetracemalloctotrackmemoryallocationsandidentifyhigh-memorylines;2.Monitorobjectcountswithgcandobjgraphtodetectgrowingobjecttypes;3.Inspectreferencecyclesandlong-livedreferencesusingobjgraph.show_backrefsandcheckforuncollectedcycles;4.Usememory_prof

Python的生存分析 Python的生存分析 Aug 03, 2025 pm 12:58 PM

生存分析用於研究事件發生的時間,Python中常用lifelines和scikit-survival實現。 1.安裝lifelines庫並準備包含時間與事件狀態的數據;2.使用Kaplan-Meier估計器繪製生存曲線以可視化事件未發生的概率;3.通過Cox比例風險模型分析變量對事件時間的影響,並檢查模型假設;4.注意刪失數據的處理,確保event列正確標記刪失與事件發生。

See all articles