python正規表示式提取某段資訊後,如何去掉這些資訊中含有的某些資訊

時間 2021-07-05 06:24:59

1樓:gta小雞

篩選兩遍,第一遍以非貪婪模式找出所有匹配有...中的字串,第二遍剔除其中含有非法字元的匹配結果。

test_str = '有乾燥劑中有乾燥中有發明了xx技術中有發明了xx中'

regex1 = r'有(.+?)中' #匹配所有'有...中'之間的字元

pre_match = re.findall(regex1, test_str) #結果:['乾燥劑','乾燥','發明了xx技術','發明了xx']

regex2 = r'(?!.*乾燥劑)(?!.*發明了.+技術)' #不能含有乾燥劑和發明了..技術字樣

final_match = [s for s in pre_match if re.match(regex2, s)] #結果:['乾燥','發明了xx']

2樓:

這個壓根用不上正規表示式。

比如你要提取「有......中」中間的資訊,直接用字串擷取不就行了,因為你的是沒有規則的字串。

假如這中間資訊含有 乾燥劑 或者 發明了。。技術 ---這個可以通過查詢字串,去做判斷,判斷之後再決定是否要提取這整條資訊。

python 正規表示式如何擷取字串中間的內容

3樓:花臂華盛頓

啟動ipython先匯入re模組

這裡我用到了findall全域性匹配,分為兩部分,前面是正則,後面是要匹配的字串

得到一個元祖

通過變數a 就能列印出想要的字串

在 python 中,我們可以使用內建的 re 模組來使用正規表示式,re 模組提供了不少有用的函式,用以匹配字串,比如:

re 模組的一般使用步驟如下:

使用 compile 函式將正規表示式的字串形式編譯為一個 pattern 物件

通過 pattern 物件提供的一系列方法對文字進行匹配查詢,獲得匹配結果(一個 match 物件)

最後使用 match 物件提供的屬性和方法獲得資訊,根據需要進行其他的操作

findall 方法的使用形式如下:

findall(string[, pos[, endpos]])

其中,string 是待匹配的字串,pos 和 endpos 是可選引數,指定字串的起始和終點位置,預設值分別是 0 和 len (字串長度)。

findall 以列表形式返回全部能匹配的子串,如果沒有匹配,則返回一個空列表。

4樓:

是需要從字串中提取數

字嗎如圖所示:

正規表示式是一個特殊的字元序列,它能幫助你方便的檢查一個字串是否與某種模式匹配。

python 自1.5版本起增加了re 模組,它提供 perl 風格的正規表示式模式。

re 模組使 python 語言擁有全部的正規表示式功能。

compile 函式根據一個模式字串和可選的標誌引數生成一個正規表示式物件。該物件擁有一系列方法用於正規表示式匹配和替換。

re 模組也提供了與這些方法功能完全一致的函式,這些函式使用一個模式字串做為它們的第一個引數。

re.match函式

re.match 嘗試從字串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回none。

函式語法:

re.match(pattern, string, flags=0)

re.search方法

re.search 掃描整個字串並返回第一個成功的匹配。

函式語法:

re.search(pattern, string, flags=0)

re.match與re.search的區別

re.match只匹配字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函式返回none;而re.search匹配整個字串,直到找到一個匹配。

5樓:自我西郊

import re

pattern = re.compile("forum\/(\d*)\/topic\/(\d*)")

res = pattern.search('forum/135/topic/794150').groups()

print res[0],res[1]

6樓:夢裡尋你我他

\w*\/(\d+)\/\w*\/(\d+)

7樓:隨風飄揚

import re

string = "forum/135/topic/794150"

print(re.findall(r'forum/(\d+)/topic/(\d+)',string))

8樓:匿名使用者

re.findall("\d",a)

9樓:t仝在路上

用re.findall

python正規表示式問題,Python ,正規表示式問題

老夭來了 1 在這裡是什麼用途?表示什麼意思?2 d d 為什麼要加一個括號?是 的不分組版本,意思就是說外面括號不是用來做資料提取的,僅僅是為了做數量指定的,就是說有個多少括號中匹配的資料。比如 d d 就是迴圈匹配 d 這個正則格式的資料 如果解決了您的問題請採納!如果未解決請繼續追問 杜斯奎浦...

lua正規表示式,LUA 正規表示式

lua中修飾符 和 都表示匹配前一字元0次或多次,但 進行的是最短匹配,類似傳統正則中的非貪婪匹配,而 則是最長匹配,即貪婪匹配 由於你正則中最後一個 d 後面沒有任何東西了,那這個 進行了最短匹配,即什麼都不匹配,所以沒有捕獲到1999,而加上 後,由於有了結尾標識位,就必須匹配1999才能使整個...

python正規表示式groups和group有什麼區別

group和groups是兩個不同的函式。一般,m.group n 返回第n組括號匹配的字元。而m.group m.group 0 所有匹配的字元,與括號無關,這個是api規定的。m.groups 返回所有括號匹配的字元,以tuple格式。m.groups m.group 0 m.group 1 對...