国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python 正則表達式入門(初級篇)

2020-02-23 04:09:53
字體:
來源:轉載
供稿:網友

引子

首先說 正則表達式是什么?

正則表達式,又稱正規表示式、正規表示法、正規表達式、規則表達式、常規表示法(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表達式使用單個字符串來描述、匹配一系列匹配某個句法規則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些匹配某個模式的文本。

許多程序設計語言都支持利用正則表達式進行字符串操作。例如,在Perl中就內建了一個功能強大的正則表達式引擎。正則表達式這個概念最初是由Unix中的工具軟件(例如sed和grep)普及開的。正則表達式通??s寫成“regex”,單數有regexp、regex,復數有regexps、regexes、regexen。

引用自維基百科https://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F

定義是定義,太正經了就沒法用了。我們來舉個栗子:假如你在寫一個爬蟲,你得到了

一個網頁的HTML源碼。其中有一段

<html><body><h1>hello world<h1></body></html>

你想要把這個hello world提取出來,但你這時如果只會python 的字符串處理,那么第一反應可能是

s = <html><body><h1>hello world<h1></body></html>start_index = s.find('<h1>')

然后從這個位置向下查找到下一個<h1>出現這樣做未嘗不可,但是很麻煩不是嗎。需要考慮多個標簽,一不留神就多匹配到東西了,而如果想要非常準確的匹配到,又得多加循環判斷,效率太低。

這時候,正則表達式就是首選的幫手。

干貨開始

入門級別

接著說我們剛才那個例子。我們如果拿正則處理這個表達式要怎么做呢?

import rekey = r"<html><body><h1>hello world<h1></body></html>"#這段是你要匹配的文本p1 = r"(?<=<h1>).+?(?=<h1>)"#這是我們寫的正則表達式規則,你現在可以不理解啥意思pattern1 = re.compile(p1)#我們在編譯這段正則表達式matcher1 = re.search(pattern1,key)#在源文本中搜索符合正則表達式的部分print matcher1.group(0)#打印出來

你可以嘗試運行上面的代碼,看看是不是和我們想象的一樣(博主是在python2.7環境下)發現代碼挺少挺簡單?往下看。而且正則表達式實際上要比看起來的那種奇形怪狀要簡單得多。

首先,從最基礎的正則表達式說起。

假設我們的想法是把一個字符串中的所有"python"給匹配到。我們試一試怎么做

import rekey = r"javapythonhtmlvhdl"#這是源文本p1 = r"python"#這是我們寫的正則表達式pattern1 = re.compile(p1)#同樣是編譯matcher1 = re.search(pattern1,key)#同樣是查詢print matcher1.group(0)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 元谋县| 新兴县| 江门市| 德昌县| 平武县| 阿拉善左旗| 林西县| 绩溪县| 绥阳县| 子长县| 合作市| 安多县| 晋州市| 固安县| 昌江| 盐边县| 高唐县| 江都市| 林周县| 响水县| 县级市| 仙游县| 阳高县| 杨浦区| 扶沟县| 罗源县| 固阳县| 常山县| 福清市| 太保市| 方正县| 克山县| 白玉县| 铜鼓县| 新昌县| 和硕县| 乌审旗| 宁蒗| 宁陕县| 彰化市| 耿马|