Python获取两个标记之间的单词

2024-09-29 21:35:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个字符串:

História do RFID A tecnologia de <EM ID="hub-30518" CATEG="PESSOA">RFID </EM>tem suas raízes nos sistemas de radares

我想得到^{cd1>}之间以及^{cd2>}之间的值,在这种情况下,结果是^{{cd3>}和^{cd4>}。

我现在有

^{pr2}$

但结果只是

História do RFID A tecnologia de RFID < tem suas raízes nos sistemas de radares

我怎么能做到?


Tags: 字符串dedohistrfidraemnos
3条回答

下面是一个使用beautifulsoup的解决方案:

# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
soup = BeautifulSoup('''História do RFID A tecnologia de <EM ID="hub-30518" CATEG="PESSOA">RFID </EM>tem suas raízes nos sistemas de radares''')
print soup.em['id']
print soup.em['categ']

您会注意到这是第二个最简洁的解决方案,也是最容易维护的,因为没有复杂的表达式需要理解。在

您可以使用内置的minidom模块轻松解析:

from xml.dom import minidom

xml = '<xml>História do RFID A tecnologia de <EM ID="hub-30518" CATEG="PESSOA">RFID </EM>tem suas raízes nos sistemas de radares</xml>'
dom = minidom.parseString(xml)
em = dom.getElementsByTagName('EM')[0]
categ = em.getAttribute('CATEG')
text = " ".join(t.nodeValue for t in em.childNodes if t.nodeType == t.TEXT_NODE)

或者使用内置ElementTree模块的不太详细的方法:

^{pr2}$

没有更多的信息,很难说。下面的内容可能对您的需求来说太具体了,但它满足了您的要求。希望它能让你开始,至少。在

#!/usr/bin/python                                                               
# -*- coding: utf-8 -*-                                                         

import re

text='História do RFID A tecnologia de <EM ID="hub-30518" CATEG="PESSOA">RFID </EM>tem suas raízes nos sistemas de radares'

m = re.compile(r'CATEG="([^"]*)">([^>]*)</')
result = m.search(text)

print result.groups()

输出为:

^{pr2}$

相关问题 更多 >

    热门问题