0

次のような文字列があります。

text = ' A <EM ID="5103" CATEG="ORGANIZACAO" TIPO="INSTITUICAO">Legião da Boa    Vontade</EM> comemora amanhã o <EM ID="5104" CATEG="VALOR" TIPO="CLASSIFICACAO">10º.</EM> aniversário da sua implantação em <EM ID="5105" CATEG="LOCAL" TIPO="HUMANO">Portugal</EM> com cerimónias de carácter religioso e de convívio -- disse ontem fonte da organização. '

私が使用する場合:

     re.sub('<[^>]*>', '', text)

私はこのようなものを持っています

A Legião da Boa Vontade comemora amanhã o 10º. aniversário da sua implantação em Portugal com cerimónias de carácter religioso e de convívio -- disse ontem fonte da organização. '

しかし、私はCATEGSを維持したい..のように<CATEG= "ORGANIZACAO">

お気に入り:

A `<CATEG="ORGANIZACAO">`Legião da Boa Vontade comemora amanhã o `<CATEG="VALOR" >`10º. aniversário da sua implantação em <CATEG="LOCAL">Portugal com cerimónias de carácter religioso e de convívio -- disse ontem fonte da organização.

どうすればできますか?

4

3 に答える 3

2

これを試して:

In [32]: text
Out[32]: u' A <EM ID="5103" CATEG="ORGANIZACAO" TIPO="INSTITUICAO">Legi\xe3o da Boa    Vontade</EM> comemora amanh\xe3 o <EM ID="5104" CATEG="VALOR" TIPO="CLASSIFICACAO">10\xba.</EM> anivers\xe1rio da sua implanta\xe7\xe3o em <EM ID="5105" CATEG="LOCAL" TIPO="HUMANO">Portugal</EM> com cerim\xf3nias de car\xe1cter religioso e de conv\xedvio -- disse ontem fonte da organiza\xe7\xe3o. '

In [33]: re.sub(r'<EM[^C]*(CATEG="[^"]+")[^>]*>', r'<\1>', text).replace(r'</EM>', '')
Out[33]: u' A <CATEG="ORGANIZACAO">Legi\xe3o da Boa    Vontade comemora amanh\xe3 o <CATEG="VALOR">10\xba. anivers\xe1rio da sua implanta\xe7\xe3o em <CATEG="LOCAL">Portugal com cerim\xf3nias de car\xe1cter religioso e de conv\xedvio -- disse ontem fonte da organiza\xe7\xe3o. '

rexeg は開始タグを単純化し、replaceは終了タグを削除します。

正規表現に生の文字列を使用するのは良い習慣です。正規表現の意図しない変更を避けてください。

于 2013-05-16T18:20:05.863 に答える