python中正規表示式的一些問題

2022-03-11 07:16:13 字數 1947 閱讀 4969

今天聽到一句話,覺得很在理——"當你遇到乙個問題,想到用正規表示式解決時,就變成了兩個問題"

這也從側面說明了正規表示式比較難理解。下面我將用通俗易懂的方式總結一下,最近遇到的一些正規表示式的問題

匹配模式為r".*(\d*).*",在這個模式中,(\d*)表示貪婪匹配,匹配前面的字元\d,也就是數字0次或無數次,但是我們的字串中,\d匹配無數次的情況是不存在的(實際上對於search方法,它會找到"1",如果"11"不滿足"1"匹配無數次,那麼它就會選擇匹配 "1" 0次,匹配0次後就直接返回了),因此,(\d*)表示的是匹配前面的數字0次,既然是0次,那麼返回的分組的內容應該是空字串'',group(1)和groups()都能驗證這一點,比如group(1)代表返回第1個分組的字串,groups()返回乙個包含所有小組字串的元組,由於本例中只有乙個分組,分組號為1,因此,我們可以看出得到的是空字串''

但是,有人又問了,為什麼.group()看到的是匹配整個字串?事實上,我們的分組——匹配前面的數字0次——是不起任何作用的,就相當於匹配模式是r".*.*",不信請看下圖,結果是不是一模一樣?

舉個例子,匹配模式是很愛財的朋友,我的銀行餘額是字串,有一天他突然向我借錢,哥們,能不能借我很多錢?

我問,具體多少?他說,當然是越多越好啊,呵呵,這個貪心的人。我查詢賬戶餘額,一瞅,只剩下10萬了,當然選擇不借給他!因此我知道他貪得無厭,我自己如果借給他10萬,他會問我要20萬,30萬...甚至更多,所以,對於利慾薰心的朋友,我是拒絕的——最後他一分錢也沒拿到,得到的是空(空字串'')。於是,這位朋友算是看了一眼我的賬戶餘額(search()),灰溜溜的走了

有一天,這個朋友又來了,這次他的疑心又加重了一些,他又向我借錢,哥們,能不能借我很多錢?

我掏出手機查了一下賬戶餘額,上面寫著大約"10萬",這位朋友就是不死心,明明是不能滿足他的貪心,他還死纏著我不放,非要我查清楚具體的明細給他看,而且要精確到小數點之後的幾角幾分,第一次,我告訴他大約10萬,不能借給他,他拿到了空(空字串''),第二次,當我查詢具體明細時,上面顯示"101283.88"元,我再次拒絕了他,他又拿了一次空,這就是findall()的作用,返回所有能匹配到的子串

我的朋友在多次借錢無果的情況下,經過我苦口婆心的勸說,終於有點醒悟了,他打算洗心革面,做乙個清心寡欲的人

有一天,他突然來找我,哥們,能不能借我點錢,兩位數的都成

我一聽,媽呀,這改變頗大,得了,借他99塊錢還是沒問題的,正要掏出99元時,他突然攔住我,表示要看我的賬戶餘額

驚出一身冷汗,但還是抱著信任他的態度,把手機給他,他看了賬戶餘額,"101283.88"元,緩緩地說道,你能借我8毛8嗎?

當然可以——我鬆了一口氣,有點懷疑的望著他,對了,你的貪婪**去了?

他不假思索的說,我把貪婪給了別人——我們貪婪家族,輩分排在我前面的那個".*",有了他,我可以不揹負貪婪的惡名,我只會找到最後面的兩位數,對你的餘額來說,應該是最少的

有一天,我的朋友開心的跑來找我,說他的前輩也洗心革面了,開始慢慢習慣清貧、習慣滿足

我知道,這是我朋友的功勞。當他得到慾望的危害後,他也向布道師一樣向前輩們傳遞這種思想

他的前輩就接收了他的洗禮,並且還刻意在帽子上畫了乙個"?"的標記,那是他獨有的限制自我的符號

當然,這次朋友也是來向我借錢的,哥們,能不能給我借點錢,兩位數的都行,就像上次的語氣一樣

我這時卡里還有"199.88"元,為什麼只剩下這麼點?是因為最近去**了

於是,我拿出99元,最大的兩位數給他,跟他說——得了,拿走吧

現在他也不仔細檢視我的餘額明細了,瞄了一眼大概的餘額就收下了

python中正規表示式

python中正規表示式語法與linux中的相容 檢視正規表示式 python提供re模組,包含所有正規表示式的功能。由於python的字串本身也用 轉義,所以要特別注意 s abc 001 python的字串 對應的正規表示式字串變成 abc 001 建議使用python的r字首,就不用考慮轉義的...

Python 中 正規表示式

一 最近要對字串執行很多操作,所以學了正規表示式 不得不說正規表示式對字串的操作還是很給力的 runoob上面的教程 python中的正規表示式 正規表示式教程 python中要使用正規表示式,首先要匯入re模組 import re 二 常用函式 或者說方法 re.match 作用 嘗試從字串的起始...

Python中正規表示式

python re模組正規表示式中常用的字元有兩類 普通字元和11個元字元,元字元表示特定的功能,比如下面的 被括起來的表示式將作為分組,從表示式左邊開始每遇到乙個分組的左括號 編號 1。分組表示式作為乙個整體,可以後接數量詞。表示式中的 僅在該組中有效。那麼我們想匹配表示式中的 字元怎麼辦呢?通過...