国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

漳州市網(wǎng)站建設(shè)費(fèi)用電商平臺(tái)怎么加入

漳州市網(wǎng)站建設(shè)費(fèi)用,電商平臺(tái)怎么加入,php網(wǎng)站程序安裝,網(wǎng)頁升級(jí)緊急通知忘憂草正則表達(dá)式是文本匹配模式,也就是按照固定模式匹配文本 一、導(dǎo)入 re模塊是Python環(huán)境的內(nèi)置模塊,所以無需手動(dòng)安裝。直接在文件中導(dǎo)入即可: import re 二、正則表達(dá)式基礎(chǔ)知識(shí) . 匹配除換行符以外的任意字符 ^ 匹配字符串的開始 $ 匹配字…

正則表達(dá)式是文本匹配模式,也就是按照固定模式匹配文本

一、導(dǎo)入

re模塊是Python環(huán)境的內(nèi)置模塊,所以無需手動(dòng)安裝。直接在文件中導(dǎo)入即可:

import re

二、正則表達(dá)式基礎(chǔ)知識(shí)

. 匹配除換行符以外的任意字符

^ 匹配字符串的開始

$ 匹配字符串的結(jié)尾

* 匹配前面的子表達(dá)式零次或多次

+ 匹配前面的子表達(dá)式一次或多次

? 匹配前面的子表達(dá)式零次或一次

{n} n 是一個(gè)非負(fù)整數(shù)。匹配確定的 n 次

{n,} n 是一個(gè)非負(fù)整數(shù)。至少匹配n 次

{n,m} m 和 n 均為非負(fù)整數(shù),其中n <= m。最少匹配 n 次且最多匹配 m 次

[xyz] 字符集合。匹配所包含的任意一個(gè)字符 [^xyz] 負(fù)值字符集合。匹配未包含的任意字符

\d 匹配一個(gè)數(shù)字字符。等價(jià)于 [0-9]

\D 匹配一個(gè)非數(shù)字字符。等價(jià)于 [^0-9]

\s 匹配任何空白字符,包括空格、制表符、換頁符等等。等價(jià)于 [\f\n\r\t\v]

\S 匹配任何非空白字符。等價(jià)于 [^\f\n\r\t\v]

\w 匹配包括下劃線的任何單詞字符。等價(jià)于'[A-Za-z0-9_]'

\W 匹配任何非單詞字符。等價(jià)于 '[^A-Za-z0-9_]'


例如:

有一個(gè)字符串:python pytttthon

正則表達(dá)式格式為:pyt{4}hon

那么只有"pytttthon"匹配到

如果正則表達(dá)式為:pyt{1,4}hon

那么匹配到的字符串就是python和pytttthon

三、compile

compile()函數(shù)用于編譯一個(gè)字符串形式的正則表達(dá)式,將其轉(zhuǎn)換為一個(gè)模式對(duì)象(Pattern object)。這個(gè)模式對(duì)象具有匹配(match())、搜索(search())、查找所有(findall())、查找迭代(finditer())以及分割(split())等方法,用于對(duì)字符串進(jìn)行各種基于正則表達(dá)式的操作。

案例:

import re
pattern=re.compile(r'\d+')
print(pattern)

上述代碼編譯了一個(gè)字符串:‘\d+’為正則表達(dá)式,字符串前的r:代表是原始字符,通常與轉(zhuǎn)義字符聯(lián)用,當(dāng)不加r時(shí)使用轉(zhuǎn)義字符需要使用兩個(gè)\,并返回一個(gè)對(duì)象給pattern。這個(gè)正則表達(dá)式的意義為:找到一個(gè)數(shù)字或多個(gè)數(shù)字的字符串。輸出pattern:

re.compile('\\d+')

四、compile中的方法使用

1、match方法

match方法是用來按順序從頭匹配字符串的。不會(huì)全部匹配,而是找到第一個(gè)符合正則格式的字符串就返回。

案例1:

import re
pattern=re.compile(r'\d+')
m1=pattern.match('one123two457three89')
#因?yàn)閛不是數(shù)字,所以無匹配數(shù)據(jù)
print(m1)

.match中是要匹配格式的字符串,通過上文,我們可知,這個(gè)代碼是要找一個(gè)帶有數(shù)字的字符串,且match是從頭開始匹配,所以在匹配第一個(gè)字符時(shí)發(fā)現(xiàn)不是數(shù)字,所以直接返回。

導(dǎo)致輸出結(jié)果為:None

案例2,按索引查詢:

import re
pattern=re.compile(r'\d+')
m1=pattern.match('one123two457three89',3,6)
print(m1.group())#通過group查看匹配的數(shù)據(jù)

match函數(shù)的參數(shù):(要匹配的字符串,開始索引,結(jié)束索引),開始和結(jié)束索引是前閉后開集合,也就是包括開始索引字符,不包括結(jié)束索引字符。上述代碼實(shí)現(xiàn)了從索引值為3的字符開始,到6結(jié)束,不包括6。.group是查看匹配的數(shù)據(jù)

輸出:123

如果不寫.group輸出:<re.Match object; span=(3, 6), match='123'>

2、search方法

search方法也是搜索匹配字符串,但是與match不同,他是整體的字符串匹配,但只返回第一個(gè)匹配的字符串。

import re
pattern=re.compile(r'\d+')
s1=pattern.search('one123two457three89')
print(s1)

輸出:123。因?yàn)閟earch不是從頭開始嚴(yán)格匹配,所以就會(huì)匹配到123。

3、findall方法

findall也是用來檢索匹配字符串的,而且他會(huì)返回所有符合條件的字符串。并且返回一個(gè)列表。

案例:

import re
pattern=re.compile(r'\d+')
f1=pattern.findall('one123two457three89')
print(f1)

上述代碼是要匹配所有是數(shù)字的字符串,但返回的是一個(gè)列表,所以輸出形式為:

['123', '457', '89']

4、split方法

split方法是分隔字符串的,并且返回一個(gè)列表。這個(gè)方法不歸屬于正則表達(dá)式。

比如我們要按逗號(hào)分隔一個(gè)字符串:

import re
str='a,b,c'
print(str.split(','))

那么我們就可以得到一個(gè)列表:['a', 'b', 'c']

但是如果分隔符是多種的,我們就需要用到正則表達(dá)式了

案例:

import re
str='a,b;;c d'
pattern=re.compile(r'[\s\,\;]+')
print(pattern.split(str))

如果我們要將str中的abcd作為單獨(dú)元素分隔,但他們之間的分隔符不一樣,那么我們就可以將分隔符寫到正則表達(dá)式中。上述代碼將空格逗號(hào)分號(hào)作為分隔符寫入正則表達(dá)式。那么我們將返回的pattern對(duì)象打點(diǎn)調(diào)用split就可以按照pattern格式分隔,split()括號(hào)中填入要分割的字符串。因?yàn)樽址锌赡軆蓚€(gè)或多個(gè)分隔符連著使用,所以后邊加上一個(gè)加號(hào)用來匹配一次或多次。

輸出:['a', 'b', 'c', 'd']

5、sub方法

sub方法是用來替換字符串的,sub方法中有三個(gè)參數(shù):參數(shù)一:替換后的值,參數(shù)二:原值,參數(shù)三:替換幾個(gè)。參數(shù)一既可以傳值也可以穿函數(shù)

案例1:

string='<h1 class="test">1 helloworld</h1>'
pattern=re.compile(r'\d')
print(pattern.sub('2',string))
print(pattern.sub('2',string,1))

上述代碼的第一個(gè)sub方法是要將string字符串中的所有數(shù)字都換成2,第二個(gè)sub方法是將string字符串中的第一個(gè)數(shù)字替換成2。

輸出:<h2 class="test">2 helloworld</h2>
???????????<h2 class="test">1 helloworld</h1>

五、分組

.group方法是將檢索出來的字符串按組取出

在寫正則表達(dá)式時(shí)我們可以將字符串進(jìn)行分組

案例:

string='<h1 class="test">1 helloworld</h1>'
pattern=re.compile(r'<(.\d)\sclass="(.*?)">.*?</(.1)>')#p給組起名字:classname,可以通過名字調(diào)用該組
print(pattern.search(string).group(1))

上述代碼的結(jié)果:test。在寫正則表達(dá)式時(shí)我們可以用括號(hào)對(duì)字符串進(jìn)行分組,數(shù)字代表第幾組,上述代碼是要第一組,也就是class后面括號(hào)內(nèi)的內(nèi)容,在匹配時(shí),匹配到class后邊的組括號(hào)。

我們也可以給組起名,用分組名

pattern=re.compile(r'<(.\d)\sclass="(?P<classname>.*?)">.*?</(.1)>')
print(pattern.search(string).group('classname'))

上述代碼跟上一個(gè)案例的結(jié)果一樣

sub方法補(bǔ)充(參數(shù)一傳函數(shù)時(shí)):

sub方法中 參數(shù)1函數(shù)名,是對(duì)字符串的替換規(guī)則。參數(shù)2是要操作的字符串,將sub(str)的結(jié)果傳入到第一個(gè)參數(shù)中,返回第一個(gè)參數(shù)的結(jié)果。將匹配的結(jié)果傳入func方法中,對(duì)傳入的數(shù)據(jù)操作,這個(gè)方法的內(nèi)容就是替換規(guī)則。替換后的語句就是func的返回值。

import re
string='<h1 class="test">1 helloworld</h1>'
pattern=re.compile(r'<(.\d)\sclass="(?P<classname>.*?)">.*?</(.1)>')
def func(m):#m是要匹配的格式return "after sub:"+m.group('classname')
#sub方法中傳入函數(shù)
#參數(shù)一:函數(shù)名,參數(shù)二:原字符串
print(pattern.sub(func,string))

上述代碼輸出:after sub:test

六、防止貪婪模式:?

import re
string='<h1 class="test">1 helloworld</h1>'
pattern=re.compile(r'<.\d\sclass=.*>')
print(pattern.search(string).group())
#'?'防止貪婪匹配
pattern=re.compile(r'<.\d\sclass=.*?>')
print(pattern.search(string).group())

上述代碼第一個(gè)輸出語句為string完整字符串,而第二個(gè)輸出語句為:<h1 class="test">。因?yàn)榈谝粋€(gè)是貪婪模式,當(dāng)出現(xiàn)重復(fù)的結(jié)尾字符時(shí),他會(huì)匹配到最后一個(gè)>符號(hào),而加上問號(hào),他會(huì)匹配到離他最近的那個(gè)。

http://www.aloenet.com.cn/news/32369.html

相關(guān)文章:

  • 安徽省建設(shè)工程八大員報(bào)名網(wǎng)站營口seo
  • python做網(wǎng)站快嗎關(guān)鍵詞智能調(diào)詞工具
  • 做外貿(mào)雨傘到什么網(wǎng)站合肥網(wǎng)絡(luò)seo推廣服務(wù)
  • 網(wǎng)站在線客服系統(tǒng)搭建seo實(shí)戰(zhàn)培訓(xùn)視頻
  • php做電商網(wǎng)站app推廣接單平臺(tái)
  • 河南平臺(tái)網(wǎng)站建設(shè)找哪家怎樣進(jìn)行seo推廣
  • 網(wǎng)站開發(fā)公司云鯨互創(chuàng)怎么聯(lián)系百度搜索廣告投放
  • 免費(fèi)品牌網(wǎng)站制作百度網(wǎng)絡(luò)營銷
  • 溫州網(wǎng)站建設(shè)首選龍誠互聯(lián)網(wǎng)絡(luò)營銷策略主要包括
  • 青島紀(jì)委網(wǎng)站廉政建設(shè)準(zhǔn)考證他達(dá)拉非片正確服用方法
  • 網(wǎng)站上的qq咨詢?cè)趺醋鏊阉饕嬖诰€觀看
  • 建設(shè)銀行面試通知網(wǎng)站2024最火的十大新聞?dòng)心男?/a>
  • 做惡搞網(wǎng)站軟件下載網(wǎng)絡(luò)營銷課程學(xué)什么
  • 網(wǎng)牛網(wǎng)站建設(shè)東莞今天新增加的情況
  • 上海閔行天氣連云港seo優(yōu)化公司
  • 天津網(wǎng)站制作機(jī)玩法部百度指數(shù)的需求指數(shù)
  • 98同城招聘網(wǎng)信息seo課堂
  • 大連商城網(wǎng)站建設(shè)產(chǎn)品推廣網(wǎng)站
  • 網(wǎng)頁三劍客的網(wǎng)頁制作軟件是seo資料站
  • 免費(fèi)的中文logo網(wǎng)站sem投放
  • 網(wǎng)站開源系統(tǒng)免費(fèi)網(wǎng)站建設(shè)seo
  • 營銷qq和企業(yè)qq區(qū)別深圳專門做seo的公司
  • 網(wǎng)站建設(shè)英文怎么說百度一下你就知道官網(wǎng)網(wǎng)址
  • 成都商城網(wǎng)站建設(shè)地址推廣網(wǎng)頁怎么做的
  • 西安網(wǎng)站制作公司排名口碑營銷屬于什么營銷
  • 西部數(shù)碼網(wǎng)站助手4.0運(yùn)營商推廣5g技術(shù)
  • 初學(xué)網(wǎng)站開發(fā)書籍關(guān)鍵詞歌曲歌詞
  • 濟(jì)南網(wǎng)站建設(shè)培訓(xùn)學(xué)校百度首頁推薦關(guān)不掉嗎
  • 手機(jī)網(wǎng)站底部代碼北京seo網(wǎng)站管理
  • 網(wǎng)站開發(fā)z億瑪酷1流量訂制怎么做信息流廣告代理商