菜鳥教程html Python正則獲取文本中匹配內(nèi)容?
Python正則獲取文本中匹配內(nèi)容?正則表達(dá)式是一種特殊的字符序列,它可以幫助您輕松地檢查字符串是否與模式匹配。Python從版本1.5開始就添加了re模塊,它提供了Perl風(fēng)格的正則表達(dá)式模式。Re
Python正則獲取文本中匹配內(nèi)容?
正則表達(dá)式是一種特殊的字符序列,它可以幫助您輕松地檢查字符串是否與模式匹配。
Python從版本1.5開始就添加了re模塊,它提供了Perl風(fēng)格的正則表達(dá)式模式。
Re模塊使Python語(yǔ)言具有所有正則表達(dá)式函數(shù)。
compile函數(shù)根據(jù)模式字符串和可選標(biāo)志參數(shù)生成正則表達(dá)式對(duì)象。這個(gè)對(duì)象有一系列用于正則表達(dá)式匹配和替換的方法。
re模塊還提供與這些方法的功能完全一致的功能。這些函數(shù)使用模式字符串作為第一個(gè)參數(shù)。
1. 重新編譯():此函數(shù)用于生成正則表達(dá)式,這是匹配的核心部分。它用于定義如何匹配以及匹配什么。有關(guān)更多詳細(xì)信息,請(qǐng)參閱菜鳥教程。
2. 關(guān)于芬德爾():此函數(shù)用于匹配指定的字符串。
提取特定內(nèi)容:
1。將文本或字符串中的特定內(nèi)容從位置XXX提取到位置X:重新編譯(”XXX。例如:
import re
STR=“abcd1234efg”
pattern=重新編譯(“ab.ef”)從ab匹配到ef
結(jié)果=模式.findall(STR)
print(result)
運(yùn)行結(jié)果如下
[“abcd1234ef”
]2。將文本或字符串中的特定內(nèi)容從某個(gè)位置XXX提取到某個(gè)位置X:重新編譯(”XXX(。)X“)
導(dǎo)入re
str=”abcd1234efg“
模式=重新編譯(”ab(.)ef”)#匹配AB和ef之間的內(nèi)容
結(jié)果=模式.findall(STR)
打?。ńY(jié)果)
運(yùn)行結(jié)果如下
[“cd1234”
正則表達(dá)式
垂直線“|”表示或。它意味著對(duì)兩個(gè)匹配條件執(zhí)行邏輯或運(yùn)算。例如,正則表達(dá)式(his | her)匹配“它屬于他”和“它屬于她”,但不能匹配“它屬于他們”。注意:并非所有軟件都支持此元字符。最簡(jiǎn)單的元字符是點(diǎn),它可以匹配任何單個(gè)字符(請(qǐng)注意,不包括換行符)。要評(píng)價(jià)邏輯表達(dá)式,不僅要注意邏輯運(yùn)算符本身的運(yùn)算規(guī)則,還要遵循以下兩個(gè)原則:
1。從左到右求解邏輯表達(dá)式。
2. 短路原理:在求解邏輯表達(dá)式的過程中,只要能隨時(shí)確定邏輯表達(dá)式的值,就不會(huì)進(jìn)行求解過程,求解就完成了。當(dāng)我們了解邏輯表達(dá)式的運(yùn)算規(guī)則時(shí),首先可以找到表達(dá)式中優(yōu)先級(jí)最低的邏輯運(yùn)算符,然后根據(jù)這些運(yùn)算符將整個(gè)邏輯表達(dá)式分成若干計(jì)算部分。從最左邊的計(jì)算部分開始,根據(jù)算術(shù)運(yùn)算、關(guān)系運(yùn)算和邏輯運(yùn)算的規(guī)則來計(jì)算這部分的值。每次計(jì)算零件時(shí),靠近零件右側(cè)的邏輯運(yùn)算符將根據(jù)真值表判斷邏輯值。如果可以確定整個(gè)邏輯表達(dá)式的值,則所有后續(xù)計(jì)算都將停止。只有當(dāng)無法確定整個(gè)邏輯表達(dá)式的值時(shí),才會(huì)執(zhí)行下一次計(jì)算。