Skip to content Skip to sidebar Skip to footer

Removes Text Between Two Tags Python

I have dataframe. The df[0] contains Eukariota|Organisme eukariotik (hewan, tumbuhan, fungi, dan protista) menyimpan kebanyakan DNA-nya dalam inti sel dan sebagian kecil sisanya da

Solution 1:

As an example dataframe:

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'])

Use pandas string replace and pass regex = True. If you have additional patterns you need to replace, use the | symbole to additionally add regex patterns.

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

Solution 2:

I would use Regex.

This is the regex to use for the case you mention: (\<\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

Solution 3:

You can use re to match all text between the two tags. Using < ref >.*< \/ref > will match any text that sits within the two tags.

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. '

Solution 4:

with simple slicing?

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

Post a Comment for "Removes Text Between Two Tags Python"