Python re.findall组织列表
我有一个文本文件,其中的条目如下:Python re.findall组织列表,python,python-3.x,regex,Python,Python 3.x,Regex,我有一个文本文件,其中的条目如下: 西班牙 2345364564 正常的 萨拉戈萨 8743249725 0 马拉加 8743249725 0 7. 英国 2345364564 正常的 伦敦 8743249725 0 利物浦 8743249725 0 7. 正则表达式不适合解析xml。更好地使用xml解析器。。 如果你想要正则表达式解决方案,那么希望下面的代码能帮助你 import re s = """\n<soap:Envelope xmlns:soap="http://www.w
西班牙
2345364564
正常的
萨拉戈萨
8743249725
0
马拉加
8743249725
0
7.
英国
2345364564
正常的
伦敦
8743249725
0
利物浦
8743249725
0
7.
正则表达式不适合解析xml。更好地使用xml解析器。。
如果你想要正则表达式解决方案,那么希望下面的代码能帮助你
import re
s = """\n<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">\n <soap:Body>\n <Applications_GetResponse xmlns="http://www.country.com">\n <Applications>\n <CS_Application>\n <Name>Spain</Name>\n <Key>2345364564</Key>\n <Status>NORMAL</Status>\n <Modules>\n <CS_Module>\n <Name>zaragoza</Name>\n <Key>8743249725</Key>\n <DevelopmentEffort>0</DevelopmentEffort>\n <LogicalDBConnections/>\n </CS_Module>\n <CS_Module>\n <Name>malaga</Name>\n <Key>8743249725</Key>\n <DevelopmentEffort>0</DevelopmentEffort>\n <LogicalDBConnections/>\n </CS_Module>\n </Modules>\n <CreatedBy>7</CreatedBy>\n </CS_Application>\n <CS_Application>\n <Name>UK</Name>\n <Key>2345364564</Key>\n <Status>NORMAL</Status>\n <Modules>\n <CS_Module>\n <Name>london</Name>\n <Key>8743249725</Key>\n <DevelopmentEffort>0</DevelopmentEffort>\n <LogicalDBConnections/>\n </CS_Module>\n <CS_Module>\n <Name>liverpool</Name>\n <Key>8743249725</Key>\n <DevelopmentEffort>0</DevelopmentEffort>\n <LogicalDBConnections/>\n </CS_Module>\n </Modules>\n <CreatedBy>7</CreatedBy>\n </CS_Application>\n </Applications>\n </Applications_GetResponse>\n </soap:Body>\n</soap:Envelope>\n"""
pattern1 = re.compile(r'<CS_Application>([\s\S]*?)</CS_Application>')
pattern2 = re.compile(r'<Name>(.*)?</Name>')
for m in re.finditer(pattern1, s):
ss = m.group(1)
res = []
for mm in re.finditer(pattern2, ss):
res.append(mm.group(1))
print("The Country: "+res[0]+" - Cities: "+",".join(res[1:len(res)]))
重新导入
s=“”"\n\n\n\n\n\n西班牙\n 2345364564\n正常\n\n\n萨拉戈萨\n 8743249725\n 0\n\n\n\n马拉加\n8743249725\n 0\n\n\n 7\n\n\n\n英国\n 2345364564\n正常\n\n\n伦敦\n 8743249725\n 0\n\n\n\n利物浦\n 8743249725\n 0\n\n\n\n 7\n\n\n\n\n\n\n”“”
pattern1=re.compile(r'([\s\s]*?)')
pattern2=re.compile(r'(.*))
对于m in re.finditer(模式1,s):
ss=m组(1)
res=[]
对于mm in re.finditer(图案2,不锈钢):
res.append(mm.group(1))
打印(“国家:“+res[0]+”-城市:“+”,”。加入(res[1:len(res)])
@GolamMazid Sajib可以帮助我实现预期回报:
HERE
Country: Spain
City Spain:Zaragoza
City Spain:Malaga
Country: UK
City UK:london
City UK:liverpool
不要为此使用regexp。请使用类似BeautifulSoup的XML解析器。感谢朋友的帮助..我将测试它并让您知道。您可以帮助我获得预期的回报,我在下面的问题中是如何做到的!