早教吧作业答案频道 -->数学-->
求高手帮忙写一个参考文献的正则表达式,格斯如下作者,作者,作者.文章标题.杂志名称.2009;11(4):102-107.作者.文章标题.杂志名称.2009;11(4):24-28.(标点均为英文标点,作者为一个或多个,年不超过
题目详情
求高手帮忙写一个参考文献的正则表达式,格斯如下
作者,作者,作者.文章标题.杂志名称.2009;11(4):102-107.
作者.文章标题.杂志名称.2009;11(4):24-28.
(标点均为英文标点,作者为一个或多个,年不超过四位,括号里的数字不超过两位)
作者,作者,作者.文章标题.杂志名称.2009;11(4):102-107.
作者.文章标题.杂志名称.2009;11(4):24-28.
(标点均为英文标点,作者为一个或多个,年不超过四位,括号里的数字不超过两位)
▼优质解答
答案和解析
#!python2.7
# encoding:utf-8
import re
# 正则表达式定义
patt = re.compile(r'''
P.)\.
P.)\.
P.)\.
P\d{4});
P\d+)
\((?P\d{1,2})\):
P\d+-\d+)\.
''',re.X|re.I|re.U)
# 待解析的数据
content = '''
作者,作者,作者.文章标题.杂志名称.2009;11(4):102-107.
作者.文章标题.杂志名称.2009;11(4):24-28.
'''
def parserline(ln):
''' 解析一行数据 '''
m = patt.match(ln)
if m:
m = m.groupdict()
m['authors'] = m['authors'].split(',')
return m
def showdict(d):
''' 将字典数据作为字符串返回,以便打印 '''
return '\n'.join([
'%10s:%s'%(k,v if not isinstance(v,(list,))
else ('[%s]'%','.join(v))
)
for k,v in d.items()])
for ln in content.splitlines():
m = parserline(ln)
if m:
print showdict(m)
print '----'
执行结果如下
>pythonw -u "baidu.py"
title:文章标题
year:2009
period:4
month:11
magazine:杂志名称
authors:[作者,作者,作者]
pages:102-107
----
title:文章标题
year:2009
period:4
month:11
magazine:杂志名称
authors:[作者]
pages:24-28
----
>Exit code:0 Time:0.503
# encoding:utf-8
import re
# 正则表达式定义
patt = re.compile(r'''
P.)\.
P.)\.
P.)\.
P\d{4});
P\d+)
\((?P\d{1,2})\):
P\d+-\d+)\.
''',re.X|re.I|re.U)
# 待解析的数据
content = '''
作者,作者,作者.文章标题.杂志名称.2009;11(4):102-107.
作者.文章标题.杂志名称.2009;11(4):24-28.
'''
def parserline(ln):
''' 解析一行数据 '''
m = patt.match(ln)
if m:
m = m.groupdict()
m['authors'] = m['authors'].split(',')
return m
def showdict(d):
''' 将字典数据作为字符串返回,以便打印 '''
return '\n'.join([
'%10s:%s'%(k,v if not isinstance(v,(list,))
else ('[%s]'%','.join(v))
)
for k,v in d.items()])
for ln in content.splitlines():
m = parserline(ln)
if m:
print showdict(m)
print '----'
执行结果如下
>pythonw -u "baidu.py"
title:文章标题
year:2009
period:4
month:11
magazine:杂志名称
authors:[作者,作者,作者]
pages:102-107
----
title:文章标题
year:2009
period:4
month:11
magazine:杂志名称
authors:[作者]
pages:24-28
----
>Exit code:0 Time:0.503
看了 求高手帮忙写一个参考文献的正...的网友还看了以下:
数学《有理数》计算题(必须要写过程)1-2-3+4+5-6-7+8+9-10-11+12+…+20 2020-04-09 …
简便计算1.1/2+1/4+1/8+1/16+1/32+1/64+1/1282.60又3/5÷12 2020-05-14 …
一元二次方程的题(全写过程,才给分)1. 若非零实数a,b(a≠b)满足a2-a-2009=0,b 2020-05-16 …
X+6分之2X=8分之11 求过程2009奥运会主会场的建筑面积大约是25.8万平方米,模型面积的 2020-05-17 …
2009年1月1日9时整,江西首条湖底隧道开通.这条隧道西起阳明东路京九线隧道,东至国威路和上海北 2020-06-05 …
这个英文是不是这样写的呢?2009.11.20.英文:2009.November.20th 2020-06-11 …
某某人写于几月几日英语怎么说?是写文章的格式比如纱纱写于长沙,2009.9月3日,英语怎么写呢? 2020-06-15 …
某某人写于几月几日英语怎么说?是写文章的格式比如纱纱写于长沙,2009.9月3日,英语怎么写呢?哪 2020-06-15 …
求高手帮忙写一个参考文献的正则表达式,格斯如下作者,作者,作者.文章标题.杂志名称.2009;11 2020-07-23 …
你好,我在刚才看到了您于2009-11-24日时,答复的一个关于利率掉期的问题时所引用过的案例。举 2020-07-26 …