删除两个标签python之间的文本

问题描述 投票:0回答:4

我有数据框。 df [0]包含

Eukariota|Organisme eukariotik (hewan, tumbuhan, fungi, dan protista) menyimpan kebanyakan DNA-nya dalam inti sel dan sebagian kecil sisanya dalam organel seperti mitokondria ataupun kloroplas. < ref > {{cite book|last = Russell|first = Peter|title = iGenetics|publisher = Benjamin Cummings|location = New York|year = 2001|isbn = 0-8053-4553-1 }} < /ref >

我要删除:

< ref > {{cite book|last = Russell|first = Peter|title = iGenetics|publisher = Benjamin Cummings|location = New York|year = 2001|isbn = 0-8053-4553-1 }} < /ref >

该怎么做?谢谢

python dataframe tags
4个回答
0
投票
我将使用正则表达式。

这是用于您提到的案例的正则表达式:(\<\sref\s\>.*\<\s\/ref\s\>)

import re string = 'Eukariota|Organisme eukariotik (hewan, tumbuhan, fungi, dan protista) menyimpan kebanyakan DNA-nya dalam inti sel dan sebagian kecil sisanya dalam organel seperti mitokondria ataupun kloroplas. < ref > {{cite book|last = Russell|first = Peter|title = iGenetics|publisher = Benjamin Cummings|location = New York|year = 2001|isbn = 0-8053-4553-1 }} < /ref >dasda' string = re.sub('(\<\sref\s\>.*\<\s\/ref\s\>)', '', string) print(string) #output: Eukariota|Organisme eukariotik (hewan, tumbuhan, fungi, dan protista) menyimpan kebanyakan DNA-nya dalam inti sel dan sebagian kecil sisanya dalam organel seperti mitokondria ataupun kloroplas. dasda


0
投票
您可以使用re匹配两个标签之间的所有文本。使用< ref >.*< \/ref >将匹配两个标签中的所有文本。

import re string = 'Eukariota|Organisme eukariotik (hewan, tumbuhan, fungi, dan protista) menyimpan kebanyakan DNA-nya dalam inti sel dan sebagian kecil sisanya dalam organel seperti mitokondria ataupun kloroplas. < ref > {{cite book|last = Russell|first = Peter|title = iGenetics|publisher = Benjamin Cummings|location = New York|year = 2001|isbn = 0-8053-4553-1 }} < /ref >' string = re.sub(f'< ref >.*< \/ref >', '', string) string 'Eukariota|Organisme eukariotik (hewan, tumbuhan, fungi, dan protista) menyimpan kebanyakan DNA-nya dalam inti sel dan sebagian kecil sisanya dalam organel seperti mitokondria ataupun kloroplas. '


0
投票
使用简单切片?

new_string = string[0 : string.find("< ref >"]


0
投票
作为示例数据框:

string1 = 'Eukariota|Organisme eukariotik (hewan, tumbuhan, fungi, dan protista) menyimpan kebanyakan DNA-nya dalam inti sel dan sebagian kecil sisanya dalam organel seperti mitokondria ataupun kloroplas. < ref > {{cite book|last = Russell|first = Peter|title = iGenetics|publisher = Benjamin Cummings|location = New York|year = 2001|isbn = 0-8053-4553-1 }} < /ref >' string2 = 'Eukariota|Organisme eukariotik {{title}}' data = [string1, string2] df = pd.DataFrame(data, columns = ['text'])

使用大熊猫字符串替换并传递regex = True。如果您需要替换其他样式,请使用|符号另外添加正则表达式样式。

new_df = df.text.replace('< ref >.*< \/ref > | {{.*}}','', regex = True) print(new_df.values[0]) print(new_df.values[1]) Output: Eukariota|Organisme eukariotik (hewan, tumbuhan, fungi, dan protista) menyimpan kebanyakan DNA-nya dalam inti sel dan sebagian kecil sisanya dalam organel seperti mitokondria ataupun kloroplas. < ref > < /ref > Eukariota|Organisme eukariotik

© www.soinside.com 2019 - 2024. All rights reserved.