python正則表達(dá)式特殊符號有哪些
python正則
python正則是處理字符串的強(qiáng)大工具
上一次很多朋友寫文字屏蔽說到要用正則表達(dá),其實(shí)不是我不想用(我正則用得不是很多,看過我之前爬蟲的都知道,我直接用BeautifulSoup的網(wǎng)頁標(biāo)簽去找內(nèi)容,因?yàn)槿菀桌斫庖卜奖悖?,而是正則用好用精通的很難(看過正則表的應(yīng)該都知道,里面符號對應(yīng)的方法規(guī)則有很多,很靈活)。對于接觸編程不久的朋友們來說很可能在編程的過程上浪費(fèi)很多時間,今天我把經(jīng)常會用到正則簡單介紹下,如果不是很特殊基本都覆蓋使用。
正則表達(dá)式并不是Python的一部分。正則表達(dá)式是用于處理字符串的強(qiáng)大工具,擁有自己獨(dú)特的語法以及一個獨(dú)立的處理引擎,效率上可能不如str自帶的方法,但功能十分強(qiáng)大。得益于這一點(diǎn),在提供了正則表達(dá)式的語言里,正則表達(dá)式的語法都是一樣的,區(qū)別只在于不同的編程語言實(shí)現(xiàn)支持的語法數(shù)量不同;但不用擔(dān)心,不被支持的語法通常是不常用的部分。如果已經(jīng)在其他語言里使用過正則表達(dá)式,只需要簡單看一看就可以上手了。
正則表達(dá)式(Regular expressions REs或regexes或regex patterns)本質(zhì)是小的且高度專業(yè)化的編程語言。它嵌入到 Python 中,調(diào)用使用re模塊。需要制定一些規(guī)則來描述那些你希望匹配的字符串集合。這些字符串集合可能包含英語句子、e-mail地址、TeX 命令,或任何你想要的東東。然后可以提出問題,例如“字符串是否匹配該模式?”或“模式是否匹配字符串?”。 新網(wǎng)認(rèn)為您還可以使用RE修改字符串或以各種方式拆分它。
正則表達(dá)式模式被編譯成字節(jié)碼,然后由 C 語言寫的匹配引擎執(zhí)行。對于高級的使用,你可能需要關(guān)注匹配引擎是如何執(zhí)行給定RE,并通過一定的方式來編寫RE,以便產(chǎn)生運(yùn)行得更快的字節(jié)碼。
新網(wǎng)提醒大家,正則表達(dá)式語言小而嚴(yán)格,不是所有的字符處理都可以使用正則表達(dá)式。還有一些任務(wù),可以使用正則表達(dá)式來完成,但是表達(dá)式非常復(fù)雜。在這種情況下編寫 Python 代碼來處理會更好些;盡管 Python 代碼比精巧的正則表達(dá)式執(zhí)行起來會慢一些,但可能會更容易理解。
點(diǎn)號(.)-匹配除換行符\n外的任意單個字符。
示例:a.o—匹配字母a和o且二者中間為任意單字符的字符串,如axo,a!o。
指數(shù)號(^)-匹配以指定字符開頭的字符串。
示例:^start—匹配以start開頭的字符串。
美元符($)-匹配以指定字符結(jié)尾的字符串。
示例:/aa/bb$—匹配以"/aa/bb"為結(jié)尾的字符串。
匹配元字符須使用轉(zhuǎn)義符(\)。
如果想要匹配的字符是正則表達(dá)式中的特殊字符,那么就需要加上轉(zhuǎn)義符(\),示例:
匹配$結(jié)尾的字符串—\$$。
一個問題:以aa開頭且以bb$結(jié)尾的正則表達(dá)式怎么寫?
正則表達(dá)式的形式就是一種匹配模式,也就是正則表達(dá)式模式,其他符號的正則表達(dá)式。
<div>
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時
需注明出處:新網(wǎng)idc知識百科