正規表示式 前後查詢(六)

2021-07-25 00:00:59 字數 1020 閱讀 3950

前面講到的正規表示式都是如何匹配表示式所表達的意思,如[a-z]+是匹配1個以上a-z的字母。今天我們講到的是前後查詢的例子,首先我們講到向前查詢的語法:

(?=表示式)
我們舉乙個例子,假設我們在如下列表中想獲取協議名

https://按照我們一般的寫法是

[a-z]+:
這樣寫存在乙個問題,就是會匹配「:」本身。這樣就不是想要的結果,如果不想要匹配冒號本身,就需要使用本章介紹的向前匹配,基本的思路使用冒號先前匹配一系列字母:

[a-z]+(?=:)
這樣匹配的結果就是

ftphttps這樣就符合我們的要求了,既返回了我們想要的協議列表。

接下來我們講到向後匹配,同樣的我們來說語法,向後匹配的語法與向前匹配很像,只是加了乙個箭頭:

(?<=表示式)
假設我們要匹配一下列表中的數字:

$12.36

$25.36

$45.65

如果僅需要匹配數字,而不是「$」符號,同前面一樣,我們需要使用向後匹配,按照前面的寫法,寫成是這樣的:

(?<=\$)[0-9.]+
最終匹配的結果就是:

12.36

25.36

45.65

如果綜合運用向前和向後匹配,我們可以舉乙個扒網頁的例子,一般html語法是這樣的,如爬取到的網頁標題一般是這樣的:

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...