我从维基百科上搜集了数据,并创建了一个数据文件。df
\n \n == Sifat-sifat DNA == \n DNA merupakan sebuah polimer yang terdiri dari satuan-satuan berulang yang disebut nukleotida. Tiap-tiap nukleotida terdiri dari tiga komponen utama, yakni gugus fungsionalgugus fosfat, gula deoksiribosa, dan basa nitrogen (nukleobasa) < ref > {{en}}{{cite web \n url = http://www.ncbi.nlm.nih.gov/bookshelf/br.fcgi?book=mboc4 & part=A2 \n title = All Cells Replicate Their Hereditary Information by Templated Polymerization \n accessdate = 2010-03-19 \n work = Bruce Alberts, et al. \n }} < /ref > . Pada DNA, nukleobasa yang ditemukan adalah Adenina (A), Guanina (G), Sitosina (C) dan Timina (T).
我想删除:
< ref > {{en}}{{cite web \n url = http://www.ncbi.nlm.nih.gov/bookshelf/br.fcgi?book=mboc4 & part=A2 \n title = All Cells Replicate Their Hereditary Information by Templated Polymerization \n accessdate = 2010-03-19 \n work = Bruce Alberts, et al. \n }} < /ref >
我需要一种在"< ref >“和”< /ref >“之间执行替换(或只删除)和文本的方法,这样当我调用它时,df现在等于:
\n \n == Sifat-sifat DNA == \n DNA merupakan sebuah polimer yang terdiri dari satuan-satuan berulang yang disebut nukleotida. Tiap-tiap nukleotida terdiri dari tiga komponen utama, yakni gugus fungsionalgugus fosfat, gula deoksiribosa, dan basa nitrogen (nukleobasa). Pada DNA, nukleobasa yang ditemukan adalah Adenina (A), Guanina (G), Sitosina (C) dan Timina (T).
我试过:
df['Body'] = df['Body'].str.replace('< ref >.*?< /ref >','',regex=True)
df['Body'] = df['Body'].str.replace('< ref >.*< \/ref >','',regex=True)
但是输出仍然没有改变,就像这样
\n \n == Sifat-sifat DNA == \n DNA merupakan sebuah polimer yang terdiri dari satuan-satuan berulang yang disebut nukleotida. Tiap-tiap nukleotida terdiri dari tiga komponen utama, yakni gugus fungsionalgugus fosfat, gula deoksiribosa, dan basa nitrogen (nukleobasa) < ref > {{en}}{{cite web \n url = http://www.ncbi.nlm.nih.gov/bookshelf/br.fcgi?book=mboc4 & part=A2 \n title = All Cells Replicate Their Hereditary Information by Templated Polymerization \n accessdate = 2010-03-19 \n work = Bruce Alberts, et al. \n }} < /ref > . Pada DNA, nukleobasa yang ditemukan adalah Adenina (A), Guanina (G), Sitosina (C) dan Timina (T).
而我需要的是我之前解释过的。我找不到任何似乎有用的通配符。任何帮助都是非常感谢的。
发布于 2020-02-06 16:03:10
问题是Python默认不会将换行符与点匹配。我们所能做的就是匹配所有的东西直到关闭ref
df['Body'] = df['Body'].str.replace('< ref >[\s\S]*< /ref >', '', regex=True)
我从这里得到了正则表达式的想法:matching any character including newlines in a Python regex subexpression, not globally
https://stackoverflow.com/questions/60105125
复制相似问题