前面講到的正規表示式都是如何匹配表示式所表達的意思,如[a-z]+是匹配1個以上a-z的字母。今天我們講到的是前後查詢的例子,首先我們講到向前查詢的語法:
(?=表示式)
我們舉乙個例子,假設我們在如下列表中想獲取協議名
https://按照我們一般的寫法是
[a-z]+:
這樣寫存在乙個問題,就是會匹配「:」本身。這樣就不是想要的結果,如果不想要匹配冒號本身,就需要使用本章介紹的向前匹配,基本的思路使用冒號先前匹配一系列字母:
[a-z]+(?=:)
這樣匹配的結果就是
ftphttps這樣就符合我們的要求了,既返回了我們想要的協議列表。
接下來我們講到向後匹配,同樣的我們來說語法,向後匹配的語法與向前匹配很像,只是加了乙個箭頭:
(?<=表示式)
假設我們要匹配一下列表中的數字:
如果僅需要匹配數字,而不是「$」符號,同前面一樣,我們需要使用向後匹配,按照前面的寫法,寫成是這樣的:$12.36
$25.36
$45.65
(?<=\$)[0-9.]+
最終匹配的結果就是:
如果綜合運用向前和向後匹配,我們可以舉乙個扒網頁的例子,一般html語法是這樣的,如爬取到的網頁標題一般是這樣的:12.36
25.36
45.65
this is title
那麼如何獲取title標籤內部的值,而不匹配或消費本身呢?最終的表示式應該是如下,有興趣可以仔細研究下這種寫法
(?<=).*?(?=)
python正規表示式 前後查詢
以下內容由於編輯器的原因,有些是用中文字元代替英文本元 正向向前查詢 正向向後查詢 負向向前查詢 負向向後查詢 1.正向前查詢 向前查詢指定了乙個必須匹配但不在結果中返回的模式。向前查詢實際上是乙個子表示式,所以要用 括起來。向前查詢模式其實就是乙個以?開頭的字表示式,需要匹配的文字跟在 的後面。後...
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
常用正規表示式查詢
數字 d n位的數字 d 至少n位的數字 d m n位的數字 d 零和非零開頭的數字 0 1 9 0 9 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 帶1 2位小數的正數或負數 d d 正數 負數 和小數 d d 有兩位小數的正實數 0 9 0 9 有1 3位小數的正實數 0 9 0 9...