国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python正則中最短匹配實現代碼

2020-02-22 22:53:07
字體:
來源:轉載
供稿:網友

下面從一個例子入手:

利用正則表達式解析下面的XML/HTML標簽:

<composer>Wolfgang Amadeus Mozart</composer><author>Samuel Beckett</author> <city>London</city> 

希望自動格式化重寫為:

composer: Wolfgang Amadeus Mozart
author: Samuel Beckett
city: London

一個代碼是這樣的形式:

#coding:utf-8 import re s="""<composer>WolfgangAmadeus Mozart</composer>    <author>SamuelBeckett</author>    <city>London</city>""" pattern1=re.compile("</w+>")  #匹配<>中任意的字符 pattern2=re.compile(">.+</")  #匹配><中任意的字符 listNames=pattern1.findall(s) #獲取所有滿足正則表達式pattern1的字符串的列表 listContents=pattern2.findall(s) #獲取所有滿足正則表達式pattern2的字符串的列表 #由于xml是規范的,所以是一一對應(對于錯誤輸入,暫時不考慮) for i in range(len(listNames)):   #輸出的時候利用切片丟棄多余的符號,如:<>/   print(listNames[i][1:len(listNames[i])-1],":",      listContents[i][1:len(listContents[i])-2]) 

這個代碼運行后結果是可以的。

下面我們修改下s的格式:

#coding:utf-8import res="<composer>Wolfgang Amadeus Mozart</composer> <author>Samuel Beckett</author> <city>London</city>"pattern1=re.compile("</w+>")  #匹配<>中任意的字符# 此模式為非貪婪模式,所以s不是多行也可以匹配pattern2=re.compile(">.+</")  #匹配><中任意的字符,問號必須加,"?"是非貪婪匹配listNames=pattern1.findall(s) #獲取所有滿足正則表達式pattern1的字符串的列表listContents=pattern2.findall(s) #獲取所有滿足正則表達式pattern2的字符串的列表#由于xml是規范的,所以是一一對應(對于錯誤輸入,暫時不考慮)for i in range(len(listNames)):  #輸出的時候利用切片丟棄多余的符號,如:<>/  print(listNames[i][1:len(listNames[i])-1],":",     listContents[i][1:len(listContents[i])-2])

得到的答案如下所示:

我們打印一下匹配到的兩個結果看一下,修改代碼如下:

#coding:utf-8import res="<composer>Wolfgang Amadeus Mozart</composer> <author>Samuel Beckett</author> <city>London</city>"pattern1=re.compile("</w+>")  #匹配<>中任意的字符# 此模式為非貪婪模式,所以s不是多行也可以匹配pattern2=re.compile(">.+</")  #匹配><中任意的字符,問號必須加,"?"是非貪婪匹配listNames=pattern1.findall(s) #獲取所有滿足正則表達式pattern1的字符串的列表listContents=pattern2.findall(s) #獲取所有滿足正則表達式pattern2的字符串的列表print(listNames)print(listContents)#由于xml是規范的,所以是一一對應(對于錯誤輸入,暫時不考慮)for i in range(len(listNames)):  #輸出的時候利用切片丟棄多余的符號,如:<>/  print(listNames[i][1:len(listNames[i])-1],":",     listContents[i][1:len(listContents[i])-2])            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仁化县| 永平县| 赣州市| 松原市| 准格尔旗| 康定县| 大名县| 红河县| 灵山县| 马龙县| 白银市| 娄烦县| 犍为县| 中牟县| 兴文县| 集安市| 沙雅县| 隆安县| 嘉善县| 丰宁| 舞钢市| 拉萨市| 准格尔旗| 泗水县| 万宁市| 新竹县| 巴中市| 石林| 恩施市| 凭祥市| 巩留县| 万荣县| 开化县| 丹江口市| 象山县| 莎车县| 南开区| 淮北市| 石楼县| 郎溪县| 襄樊市|