删除2个标签python之间的文本 [英] Removes text between 2 tags python

查看:65
本文介绍了删除2个标签python之间的文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已从Wikipedia抓取数据并创建了一个数据框。 df [0] 包含

I haved scraped data from Wikipedia and created a dataframe. df[0] contains

{{Infobox_President  |name = Mohammed Anwar Al Sadat  < br / >  محمد أنورالسادات  |nationality = Al Menofeia, Mesir  |image = Anwar Sadat cropped.jpg  |order = Presiden Mesir ke-3  |term_start = 20 Oktober 1970  |term_end = 6 Oktober 1981  |predecessor = Gamal Abdel Nasser  |successor = Hosni Mubarak  |birth_date =|birth_place = Mit Abu Al-Kum, Al-Minufiyah, Mesir  |death_place = Kairo, Mesir  |death_date =|spouse = Jehan Sadat  |party = Persatuan Arab Sosialis  < br / >  (hingga 1977)  < br / >  Partai Nasional Demokratik (Mesir)|Partai Nasional Demokratik  < br / >  (dari 1977)  |vicepresident =|constituency =}}  Jenderal Besar Mohammed Anwar Al Sadat () adalah seorang tentara dan politikus Mesir. Ia menjabat sebagai Presiden Mesir|Presiden ketiga Mesir pada periode 15 Oktober 1970 hingga terbunuhnya pada 6 Oktober 1981. Oleh dunia Barat ia dianggap sebagai orang yang sangat berpengaruh di Mesir dan di Timur Tengah dalam sejarah modern.

我要删除:

{{Infobox_President  |name = Mohammed Anwar Al Sadat  < br / >  محمد أنورالسادات  |nationality = Al Menofeia, Mesir  |image = Anwar Sadat cropped.jpg  |order = Presiden Mesir ke-3  |term_start = 20 Oktober 1970  |term_end = 6 Oktober 1981  |predecessor = Gamal Abdel Nasser  |successor = Hosni Mubarak  |birth_date =|birth_place = Mit Abu Al-Kum, Al-Minufiyah, Mesir  |death_place = Kairo, Mesir  |death_date =|spouse = Jehan Sadat  |party = Persatuan Arab Sosialis  < br / >  (hingga 1977)  < br / >  Partai Nasional Demokratik (Mesir)|Partai Nasional Demokratik  < br / >  (dari 1977)  |vicepresident =|constituency =}} 

我该怎么做?我已经尝试过

How can I do this? I have tried

df['Body'] = df['Body'].replace('< ref >.< \/ref > | {{.}} | {{.*=}}','', regex = True)
df['Body'] = df['Body'].str.replace('\'\'\' | \n | [ | ] | \'\'','',regex=True)

但它不起作用

推荐答案

您非常亲密,之所以不起作用,是因为正则表达式模式 |中有多余的空格{{。* =}} 考虑卷曲空间后面的空间。根据其他答案的建议,您可以使用锚定在行首的特殊运算符 ^

You were very close, why it did not work was because of the extra spacing in your regex pattern, | {{.*=}} considers the space behind the curly spaces. As suggested as the other answer you can use the special operator ^ that anchors at the start of the line.

否则,应用匹配该确切模式的正则表达式替换,然后删除模式中的空格:

Else to apply a regex replace that matches that exact pattern then remove the whitespaces in your pattern:

text = '{{Infobox_President  |name = Mohammed Anwar Al Sadat  < br / >  محمد أنورالسادات  |nationality = Al Menofeia, Mesir  |image = Anwar Sadat cropped.jpg  |order = Presiden Mesir ke-3  |term_start = 20 Oktober 1970  |term_end = 6 Oktober 1981  |predecessor = Gamal Abdel Nasser  |successor = Hosni Mubarak  |birth_date =|birth_place = Mit Abu Al-Kum, Al-Minufiyah, Mesir  |death_place = Kairo, Mesir  |death_date =|spouse = Jehan Sadat  |party = Persatuan Arab Sosialis  < br / >  (hingga 1977)  < br / >  Partai Nasional Demokratik (Mesir)|Partai Nasional Demokratik  < br / >  (dari 1977)  |vicepresident =|constituency =}}  Jenderal Besar Mohammed Anwar Al Sadat () adalah seorang tentara dan politikus Mesir. Ia menjabat sebagai Presiden Mesir|Presiden ketiga Mesir pada periode 15 Oktober 1970 hingga terbunuhnya pada 6 Oktober 1981. Oleh dunia Barat ia dianggap sebagai orang yang sangat berpengaruh di Mesir dan di Timur Tengah dalam sejarah modern.'
df = pd.DataFrame({'text':[text]})

new_df = df.replace('< ref >.< \/ref >|{{.*}}','', regex = True)

new_df.text[0]

Output:
'  Jenderal Besar Mohammed Anwar Al Sadat () adalah seorang tentara dan politikus Mesir. Ia menjabat sebagai Presiden Mesir|Presiden ketiga Mesir pada periode 15 Oktober 1970 hingga terbunuhnya pada 6 Oktober 1981. Oleh dunia Barat ia dianggap sebagai orang yang sangat berpengaruh di Mesir dan di Timur Tengah dalam sejarah modern.'

这篇关于删除2个标签python之间的文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆