我有数据框。 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 >
该怎么做?谢谢
这是用于您提到的案例的正则表达式:(\<\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
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. '
new_string = string[0 : string.find("< ref >"]
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