1

私はこの文字列を持っています:

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

この場合、結果はCATEG="(what I want to get)"andになります。">(what I want to get)</EM>PESSOARFID

私が持っているのは

pega = re.sub(r'<[^C]*(CATEG="[^"]+")[^>]*>', r'<\1>', text)

しかし結果はただ

RFID の歴史 RFID の技術

どうすればいいですか?

4

7 に答える 7

1

これ以上の情報がなければ、なんとも言えません。以下はあなたのニーズにはあまりにも具体的かもしれませんが、あなたが求めたことを行います. うまくいけば、少なくとも始めることができます。

#!/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()

出力は次のとおりです。

('PESSOA', 'RFID ')
于 2013-09-18T18:53:09.810 に答える
1

分割機能は、この問題の簡単な解決策かもしれません

s = "História do RFID A tecnologia de <EM ID="hub-30518" CATEG="PESSOA">RFID </EM>tem suas raízes nos sistemas de radares"
# FOR PESSOA
t1 = s.split("CATEG=\"")[1]
t1 = t1.split("\"")[0]    
# FOR RFID
t2 = s.split(" </EM>")[0]
t2 = t2.split(">")[1]
print t1,t2
于 2013-09-18T22:09:44.617 に答える
0

必要に応じて、標準のライブラリHTMLParserで遊ぶことができます(最適なオプションではありませんが、興味深いかもしれません)。

#!/usr/bin/env python
# -*- coding: utf-8 -*- 
from HTMLParser import HTMLParser

class MyHTMLParser(HTMLParser):

    data = ""
    search_tag = None
    search_attr = None
    attr = None
    grab_data = False

    def to_dict(self, attrs):
        ret = {}
        for k, v in attrs: ret[k] = v
        return ret

    def feed(self, data, tag, attr):

        self.search_tag = tag
        self.search_attr = attr
        HTMLParser.feed(self, data)

    def handle_starttag(self, tag, attrs):

        attrs = self.to_dict(attrs)
        if tag == self.search_tag:
            if self.search_attr in attrs:
                self.attr = attrs[self.search_attr]
            self.grab_data = 1

    def handle_data(self, data):

        if self.grab_data:
            self.data = data

    def handle_endtag(self, tag):

        if tag == self.search_tag:
            self.grab_data = 0

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

parser = MyHTMLParser()
parser.feed(xml, "em", "categ")
print parser.data, parser.attr
于 2013-09-20T13:58:00.690 に答える