成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > python中使用正則表達式將所有符合條件的字段全部提取出來

python中使用正則表達式將所有符合條件的字段全部提取出來

熱門標簽:怎么在高德地圖標注行走軌跡 安徽移動外呼系統 百度地圖標注名編輯 施工地圖標注怎么做 襄陽房產電銷機器人招商 個性化地圖標注在線 清遠陽山400電話號碼如何申請 百度地圖標注飯店位置怎么 深圳400電話辦理那家好

問題如標題,使用正則表達式匹配字段目前無非就三種,分別是:

re.match()
re.search()
re.findall()

簡單介紹一下,re.match()與re.search()非常類似,主要區(qū)別就是前者是從目標字符串的開頭匹配,而后者則要沒有這個要求。而re.findall()則是可以返回匹配的所有結果。但是有時候re.findall()返回的結果和前面兩個并不一樣,我們來看下面一個例子:
對于句子:

起病以來,患者無腰背痛、頸痛,無咽痛、口腔潰瘍,無光過敏、脫發(fā),無口干、眼干,無肢端發(fā)作性青紫,無肢體乏力,無浮腫、泡沫尿,精神、食欲、睡眠欠佳,近1月大便干結,5-6天1次,無腹痛、黑便、便血,小便1-2小時1次,無尿痛、血尿。體重未見明顯變化。

我想使用正則去匹配所有包含小便和尿相關的子句,目的就是將“無浮腫、泡沫尿”和“小便1-2小時1次,無尿痛、血尿。”識別出來并且將這些子句返回。
本來我想使用re.findall()去匹配:

import re
lines = [
 "起病以來,患者無腰背痛、頸痛,無咽痛、口腔潰瘍,無光過敏、脫發(fā),無口干、眼干,無肢端發(fā)作性青紫,無肢體乏力,無浮腫、泡沫尿,精神、食欲、睡眠欠佳,近1月大便干結,5-6天1次,無腹痛、黑便、便血,小便1-2小時1次,無尿痛、血尿。體重未見明顯變化。",
 ]
for line in lines:
 pattern = "[,;.,;。]+[^,;.,;。]*((小便)|尿)+[^,;.,;。]*[,;.,;。]+"
 str = re.findall(pattern,line)
 print(str)

結果為:

[('尿', ''), ('小便', '小便')]

這里說明一下我使用的模式的意義,因為我是要匹配子句,所以一個子句的前后必然會有相應的符號,所以pattern前面和后面均添加了“[,;.,;。]+”;“+”表示至少匹配一個。而后面的“[,;.,;。]*”表示匹配0個或多個除標點符號“,;.,;?!钡娜我庾址?,這里分別添加了中英文的逗號、分號和句號,“*”表示匹配0個或1個及以上。需要說明的是,這里我之所以使用“[,;.,;。]”,是因為文本中可能包含很多其他的符號,像上例中出現的“-”;所以想要使用漢字、數字、特定符號來匹配的話可能會存在遺漏,而我的目的是只想要得到匹配的子句,所以使用“[^,;.,;。]”會更通用一些。接下來就是“((小便)|尿)”意思是匹配含有“小便”或者含有“尿”的子串。
但是使用re.findall()所得到的結果并不是我想要的,于是我稍微換了一下匹配規(guī)則,將“((小便)|尿)+”換成了“[(小便)|尿]+”;為了驗證匹配的適用性,我又添加了兩個樣本。總體如下:

import re
lines = [
 "起病以來,患者無腰背痛、頸痛,無咽痛、口腔潰瘍,無光過敏、脫發(fā),無口干、眼干,無肢端發(fā)作性青紫,無肢體乏力,無浮腫、泡沫尿,精神、食欲、睡眠欠佳,近1月大便干結,5-6天1次,無腹痛、黑便、便血,小便1-2小時1次,無尿痛、血尿。體重未見明顯變化。",
 "起病以來,睡眠、胃納正常,小便正常,近4~5年來每天解大便3~4次,多為黃褐色成形軟便,偶有解爛便,有排便不盡感,便血、解黑便,無消瘦。",
 "身材矮小,體重較同齡人輕。"
]
for line in lines:
 pattern = "[,;.,;。]+[^,;.,;。]*[(小便)尿]+[^,;.,;。]*[,;.,;。]+"
 str = re.findall(pattern,line)
 print(str)

結果為:

[',無浮腫、泡沫尿,', ',近1月大便干結,', ',無腹痛、黑便、便血,', ',無尿痛、血尿。']
[',小便正常,', ',多為黃褐色成形軟便,', ',有排便不盡感,']
[]

倒是匹配出了子句,一則是“小便1-2小時1次,無尿痛、血尿”中的“小便1-2小時1次”沒有匹配出來,二則是竟然連大便相關的“近1月大便干結”和“無腹痛、黑便、便血”都匹配出來了,看來“[(小便)尿]”的意思并不是匹配含有“小便”或者“尿”的子串;那“[(小便)尿]”的意思是不是匹配含有“小”、“便”、“尿”任意一個的子串呢?但是根據第三個含有“小”但是不含“便”與“尿”的樣本可以看出,上述的想法依然不對。
再加上re.findall()沒有匹配到的子串在原始文本中的開始和結束位置,所以我想要得到“小便1-2小時1次,無尿痛、血尿?!边@種兩個子句連在一起的情況也很難得到。
于是我轉而使用另一個很常用的re.search()方法。

import re
lines = [
 "起病以來,患者無腰背痛、頸痛,無咽痛、口腔潰瘍,無光過敏、脫發(fā),無口干、眼干,無肢端發(fā)作性青紫,無肢體乏力,無浮腫、泡沫尿,精神、食欲、睡眠欠佳,近1月大便干結,5-6天1次,無腹痛、黑便、便血,小便1-2小時1次,無尿痛、血尿。體重未見明顯變化。",
]
for line in lines:
 pattern = "[,;.,;。]+[^,;.,;。]*((小便)|尿)+[^,;.,;。]*[,;.,;。]+"
 str = re.search(pattern, line)
 print(str.group())

結果為:

,無浮腫、泡沫尿,

可見,re.search()只匹配遇到的第一個滿足條件的子串。
而如果將pattern中的“((小便)|尿)”修改為“[(小便)|尿]”(或者“[(小便)尿]”,意思是完全一樣的,也試過)
得到的結果為:

,無浮腫、泡沫尿,

可見修改前后并沒有任何變化,但是如果我將原始文本中的“無浮腫、泡沫尿”中的“尿”刪除,則修改前的結果為:

,小便1-2小時1次,

修改后的結果為:

,近1月大便干結,

也就是說對于

pattern = "[,;.,;。]+[^,;.,;。]*[(小便)尿]+[^,;.,;。]*[,;.,;。]+"

無論是re.findall()還是re.search(),都能匹配到大便相關的子串;
而對于:

pattern = "[,;.,;。]+[^,;.,;。]*((小便)|尿)+[^,;.,;。]*[,;.,;。]+"

re.findall()和re.search()匹配的子串就有所區(qū)別了,前置匹配的結果是含有元組的列表:[(‘尿', ‘'), (‘小便', ‘小便')];而后者匹配到了我想要的子串:,無浮腫、泡沫尿,
后來問了同事以及進一步了解了正則的運行機制后,發(fā)現小括號()除了提取匹配的字符串,還有一個作用是用來捕獲分組的,也就是說小括號中的內容匹配后會被存儲起來,在調用的時候便會返回相應的值。而使用re.findall()時會將存儲分組的值全部返回。
再舉個例子會更加明白些,將上述pattern中的“((小便)|尿)”改為“((小便)|(尿))”,如:

pattern = "[,;.,;。]+[^,;.,;。]*((小便)|(尿))+[^,;.,;。]*[,;.,;。]+"

使用re.findall()輸出的結果為:

[('尿', '', '尿'), ('小便', '小便', '')]

由上可知,“((小便)|(尿))”使用了三個“()”,于是便產生了三個分組,在最外圍的第一個分組用于捕獲“小便”或“尿”,原文中“小便”和“尿”都能匹配到,所以第一個位置兩者都有;第二個分組是用來捕獲“(小便)”的,所以第二個分組只存儲“小便”;同理第三個分組用來捕獲“(尿)”的,所以結果只存儲了“尿”。
而我使用re.search()來輸出分組結果:

for line in lines:
    pattern = "[,;.,;。]+[^,;.,;。]*((小便)|(尿))+[^,;.,;。]*[,;.,;。]+"
    str = re.search(pattern, line)
    print(str.group(0))
    print(str.group(1))
    print(str.group(2))
    print(str.group(3))

結果為:

,無浮腫、泡沫尿,
尿
None
尿

group(1)、group(2)、group(3)分別與(‘尿', ‘', ‘尿')中對應的分組結果相同。但是這里的group(0)(或者說group(),兩個意思完全一樣)卻不是“(‘尿', ‘', ‘尿')”;這里作者水平有限,不是很清楚原因,也就是說,當調用group(0)的時候,pattern中的()的意義并不再是捕獲分組了,而是回到了原始的提取匹配字符串的意思上來了。
為了解決

pattern = "[,;.,;。]+[^,;.,;。]*[(小便)尿]+[^,;.,;。]*[,;.,;。]+"

會匹配到不想要的含有“大便”字符串的問題,通過使用非捕獲分組(?:)便可以達到目的。

pattern = "[,;.,;。]?[^,;.,;。]*(?:小便|尿)[^,;.,;。]*[,;.,;。]"

此時便是匹配“小便”或者“尿”了;結果為:

[',無浮腫、泡沫尿,', ',小便1-2小時1次,', '無尿痛、血尿。']

注意上述結果,由于“,小便1-2小時1次,”和“無尿痛、血尿?!笔蔷o接著的,而逗號已經被分配給了前者,所以后者便沒有了逗號,這看起了有點像字符串的切片,被切走了就沒了,所以這里在pattern中的第一個“[,;.,;。]”后面將“+”換成了“?”()意思的前面的字符出現0次或1次;當然更進一步可以優(yōu)化為:

pattern = "[,;.,;。]?[^,;.,;。]*(?:小便|尿).*?[,;.,;。]"

可以看到,將pattern中第二個“[^,;.,;。]”變?yōu)椤??”
上述雖然將所有子句全部匹配并輸出了,但是相鄰的兩個子句還是分開輸出的,仍舊沒有達到我們想要的預期。于是對上述代碼進行了改進:

for line in lines:
 #pattern = "[,;.,;。]+[^,;.,;。]*[('小便')尿]+[^,;.,;。]*[,;.,;。]+"
 pattern = "[,;.,;。]?[^,;.,;。]*?(?:小便|尿).*?[,;.,;。]"
 #pattern = "[,;.,;。]?[^,;.,;。]*(?:小便|尿)[^,;.,;。]*[,;.,;。]"

 str = re.findall(pattern,line)
 ls = [',',';','.',',',';','。']
 for idx, text in enumerate(str):
  if text[0] not in ls:
   str[idx-1] += text
   str.remove(text)

 print(str)

結果為:

[',無浮腫、泡沫尿,', ',小便1-2小時1次,無尿痛、血尿。']

而如果使用re.search(),也是可以達到預期的,代碼如下:

for line in lines:
 result = []
 num = -1
 while line:
  #pattern = re.compile(r"[,;.,;。]+[^,;.,;。]*((小便)|尿)+[^,;.,;。]*[,;.,;。]+")
  #str = pattern.search(line)
  pattern = r"[,;.,;。]+[^,;.,;。]*((小便)|尿)+[^,;.,;。]*[,;.,;。]+"
  str = re.search(pattern,line)
  if str == None:
   break
  tmp = str.group()
  if str.start() == 0:
   result[-1] += tmp[1:]
  else:
   result.append(tmp[1:])
  #print(tmp)
  num = str.end() - 1
  #print(num)
  line = line[num:]
 print(result)

結果為:

['無浮腫、泡沫尿,', '小便1-2小時1次,無尿痛、血尿。']

到此這篇關于python中使用正則表達式將所有符合條件的字段全部提取出來的文章就介紹到這了,更多相關python 正則表達式提取字段內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python正則表達式re.match()匹配多個字符方法的實現
  • python使用正則表達式匹配txt特定字符串(有換行)
  • Python爬蟲教程之利用正則表達式匹配網頁內容
  • Python使用正則表達式實現爬蟲數據抽取
  • Python正則表達式保姆式教學詳細教程

標簽:南昌 欽州 黑河 臨夏 駐馬店 阜陽 延邊 中衛(wèi)

巨人網絡通訊聲明:本文標題《python中使用正則表達式將所有符合條件的字段全部提取出來》,本文關鍵詞  python,中,使用,正則,表達式,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python中使用正則表達式將所有符合條件的字段全部提取出來》相關的同類信息!
  • 本頁收集關于python中使用正則表達式將所有符合條件的字段全部提取出來的相關信息資訊供網民參考!
  • 推薦文章
    久草中文视频| 亚洲r级在线视频| 亚洲男人都懂的网站| 在线观看欧美日韩国产| 亚洲va韩国va欧美va精品| 日韩美女黄色片| 日韩超碰人人爽人人做人人添| 在线看的av网站| 国产精品区在线| 国产一区二区三区四区五区加勒比| 久久久久国产精品一区| 国产又粗又长又大视频| 国产三区视频在线观看| 亚洲国产精品推荐| 精品乱码一区内射人妻无码| 日韩成人一级大片| 欧美牲交a欧美牲交| 欧美成免费一区二区视频| 在线国产一区二区| 免费在线观看av网站| 精品一区二区三区的国产在线播放| 成人国产精品视频| 亚洲毛片在线免费观看| 色视频网站在线观看| 欧美亚洲大片| 四季久久免费一区二区三区四区| 国产精品久久影视| 51妺嘿嘿午夜福利| 欧美日韩综合视频网址| 成人爽a毛片免费啪啪红桃视频| 视频一区二区在线播放| 麻豆精品传媒视频| 亚洲欧美日韩国产成人综合一二三区| 免费观看黄色一级视频| 美女露胸一区二区三区| 欧洲午夜精品| 欧美富婆性猛交| 自拍偷拍亚洲色图欧美| www.98色噜噜噜| 91超碰碰碰碰久久久久久综合| 在线免费观看的av网站| 人妻少妇偷人精品久久久任期| 粉嫩aⅴ一区二区三区四区| gogo大胆日本视频一区| 影音先锋一区| 亚洲免费精彩视频| 97国产suv精品一区二区62| 在线免费日韩av| 91精品国产91久久久久久黑人| 天天色天天射天天干| 日韩一级片一区二区| aaa欧美色吧激情视频| 久久先锋影音av鲁色资源| 亚洲免费观看在线观看| 欧美大片aaaa| 国产精品高潮粉嫩av| 全国精品久久少妇| 日本伊人午夜精品| 黄色99视频| 五月天六月丁香| 欧州一区二区| 在线观看国产一区| 久久国产综合精品| 日韩国产精品亚洲а∨天堂免| 精品国产无码一区二区| 色呦哟—国产精品| 九一成人免费视频| 成人在线观看视频网站| 在线观看电影av| 91精品国产高清一区二区三密臀| 亚洲激情二区| 男人在线观看视频| 可以在线观看的av网站| 久久国产一区二区| 亚洲国产精品天堂| 国产7777777| 日韩亚洲一区在线| 91亚洲视频在线观看| 夜夜春成人影院| 最新精品在线| 成人在线直播| 日本wwwwww| 久久男人天堂| 久久久免费av| 国产免费一区二区三区免费视频| 中文字幕乱码在线播放| 美女久久一区| 欧美**室bdsm视频| 日韩精品亚洲元码| 免费国产麻豆传| 欧美曰成人黄网| 大陆av在线播放| 18禁免费无码无遮挡不卡网站| 成人免费淫片在线费观看| 三上悠亚在线一区二区| 亚洲美女视频在线免费观看| 欧美国产精品一二三| 日本成人黄色网| 亚洲香蕉成视频在线观看| 国产一卡不卡| 亚洲精品国产精品国自产观看| 亚洲欧洲在线观看av| 日韩中文字幕区一区有砖一区| 中老年在线免费视频| 另类专区欧美制服同性| 五月婷婷另类国产| 亚洲午夜精品国产| 26uuu精品一区二区三区四区在线| 91丨九色丨国产丨porny| 欧美性xxxx禁忌| 欧美诱惑福利视频| 免费a在线观看播放| xfplay精品久久| 小视频免费在线观看| 99a精品视频在线观看| 337p亚洲精品色噜噜狠狠p| 98精品国产高清在线xxxx天堂| 国产精品一区二区免费在线观看| www.av欧美| 丁香高清在线观看完整电影视频| 成熟亚洲日本毛茸茸凸凹| 伊人久久大香伊蕉在人线观看热v| 成人高潮成人免费观看| 久久视频一区二区| 日本熟妇乱子伦xxxx| 青青草原国产在线观看| 99热这里只有精品3| 国产剧情在线观看一区二区| 国产调教一区二区三区| 亚洲婷婷国产精品电影人久久| 黄视频网站在线看| 亚洲欧洲日产国码二区| 欧美+日本+国产+在线a∨观看| 欧美怡红院视频一区二区三区| 亚洲国产一二三| 新91视频在线观看| 天天操天天干天天爱| 一本一道久久a久久综合精品| 亚洲国产精品一区在线观看不卡| 亚洲精品久久久北条麻妃| 日本成人一区二区三区| 亚洲欧美在线第一页| www.xxxx欧美| 天堂在线中文视频| 国产国产国产国产国产国产| 精品国产91久久久久久久妲己| 日韩电影免费在线观看网站| 成年人在线看片| 啪啪av大全导航福利网址| 岛国一区二区三区| 三年中国中文在线观看免费播放| 中文字幕在线网址| 国产成人av自拍| 国产69精品久久久久999小说| 欧美视频第一| 亚洲美女屁股眼交3| 中文字幕在线播放第一页| 国产欧美一区二区三区不卡高清| 日本久久久久久| 天天久久夜夜| 精品久久影视| 全免费一级毛片免费看| 久久久国产欧美| 欧美欧美午夜aⅴ在线观看| 国产精品毛片高清在线完整版| 爱草tv视频在线观看992| 久久久一本精品99久久精品| 美女黄色在线网站大全| 国产免费一区二区三区最新6| 在线亚洲+欧美+日本专区| 久久精品久久精品久久| 国产亚洲精品美女久久久| 国产精品极品| 深夜福利av你懂的| 国产欧美日韩| 国产农村妇女精品一二区| 久久久www成人免费精品| 亚洲av综合色区| 中文字幕在线网址| 日韩一级视频在线观看| 欧美久久综合网| 亚洲福利视频一区| 日韩精品自拍偷拍| 男女男精品视频站| 先锋音影av资源中文网| 色综合久久久久久中文网| 亚洲人成网77777色在线播放| 潘金莲一级淫片aaaaaa播放1| xvideos.蜜桃一区二区| 黄色成人羞羞视频| 久久成人精品电影| 97影视大全免费追剧大全在线观看| 黄在线观看免费网站ktv| 国产精品久久久久久久久搜平片| 天堂网2014av| 综合久久亚洲| 国产精品1区2区3区在线观看| 日韩高清dvd碟片| 日本精品一区| 色呦呦网站一区| 卡通动漫精品一区二区三区| 国自产精品手机在线观看视频| 日本免费黄网站| 自拍在线播放| 国产麻豆剧果冻传媒观看hd高清| 婷婷六月综合网| 李宗瑞系列合集久久| 免费观看一区二区三区| 深夜日韩欧美| 精品av中文字幕在线毛片| 中文字幕国产精品久久| 人妻无码一区二区三区| 欧美日韩综合不卡| 色香蕉久久蜜桃| 九七久久人人| 精品国产福利视频| 亚洲精品一卡二卡| 久久久亚洲高清| 国产偷国产偷亚洲高清97cao| 在线免费观看电影网站入口| 中文国语毛片高清视频| 五月天免费网站| 日本69式三人交| 日本成片免费高清| 欧美刺激脚交jootjob| 久久一区二区三区视频| 国产精品xx| 亚洲黄色小说网址| 91精品中文字幕| 国产精品夜夜夜爽阿娇| 一本色道久久88综合日韩精品| 免费观看30秒视频久久| 尤物影院在线播放| 8x8x最新地址| 久久99精品久久久久久欧洲站| 精品人妻久久久久一区二区三区| 国产精品尤物福利片在线观看| 免费黄网站在线观看| 久久久久久久中文| 国产日本欧美一区二区三区| 精品国产在天天线2019| 欧美日韩一区二区三| 亚州福利视频| 亚洲美女在线一区| 韩日成人影院| 久久密一区二区三区| 欧美成人第一页| 亚洲四虎影院| 久久综合色8888| 国产精品剧情一区二区在线观看| 欧美日韩国产精品专区| 就爱干草视频| eeuss中文| 狠狠网亚洲精品| 美女被c出白浆| 99久久国产综合精品麻豆| 国产美女免费网站| 欧美色图亚洲图片| 欧美精品一区二区三区四区五区| 国产人妻777人伦精品hd| 中文字幕亚洲欧美一区二区三区| 91浏览器在线视频| 日本手机在线视频| 人妻内射一区二区在线视频| 日韩国产一级片| 亚洲五月天综合| 国产精品久久久久久久免费大片| 久热精品在线观看视频| 欧美性猛交99久久久久99| a视频在线播放| 国产一二三在线| 91成人看片片| 日韩欧洲国产| 92福利视频午夜1000合集在线观看| 亚洲综合久久久久| 国产va免费精品观看精品视频| 91论坛在线播放| 中文字幕免费在线不卡| 女性生殖扒开酷刑vk| 一区二区不卡在线视频 午夜欧美不卡在| 成人精品一区二区不卡视频| 尤物视频免费观看| 欧美一区日本一区韩国一区| 2021国产精品久久精品| 国产高清一区二区三区| 牛牛电影国产一区二区| 成人小视频免费观看| 国产精品高潮久久久久无| 一区二区在线免费观看| 欧美日韩第一| 国产精品美女久久久久av福利| 99精品视频免费在线观看| 国产精品国内免费一区二区三区| 久草在线资源视频在线观看| 欧美精品一区二区三区一线天视频| 蜜桃视频在线观看一区| 黄色片网站在线观看| 在线无限看免费粉色视频| 欧美久久久久中文字幕| 成人国产视频在线| 国产又爽又黄的视频| 国产精品久久久久77777丨| 精品国产av鲁一鲁一区| 国产精品va无码一区二区三区| av动漫免费观看| av国产精品| 成人久久久精品乱码一区二区三区| 国产在线资源一区| 日韩欧美亚洲系列| 亚洲最新永久在线观看| 精品日韩在线一区| 妺妺窝人体色www在线观看| 国产成人在线综合| 亚洲欧美在线另类| 影音先锋人妻啪啪av资源网站| 不卡视频观看| 日本中文在线视频| 久久久久久18| 午夜精品影院在线观看| 国产aaa精品| 九九九九热精品免费视频| av一区在线观看| 秋霞av一区二区三区| 欧美理论电影在线观看| 国产成人亚洲综合91精品| 亚洲高清视频网站| 男人插女人下面免费视频| gogogogo高清视频在线|