早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求高手帮忙写一个参考文献的正则表达式,格斯如下作者,作者,作者.文章标题.杂志名称.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
看了 求高手帮忙写一个参考文献的正...的网友还看了以下:

标准海平面和平均海平面之间的差距怎么算?在计算高度时用到:“标准气压高度”和“绝对高度”,这两个高  2020-05-16 …

有8个篮子,平均每个篮子里有10个桃.如果任意选一篮,那么里面的桃子()有8个篮子,平均每个篮子里  2020-05-21 …

学校运回一批作业本,如果平均分给六年级三个的每个学生,平均每个学生可分得6本.如果只分给一班,每个  2020-05-23 …

家具公司制作木质的书桌和椅子,需要木工和漆工两道工序.己知木工平均四个小时做一把椅子,八个小时做一  2020-05-23 …

请你调查了解去年某两个城市下半年平均每个月的气温,制成统计图,并回答问题.(1)描述一下这两个城市  2020-06-15 …

数学题急1111!王阿姨给幼儿园大、小班小盆友平均每个拿到12块诺、,如果只发给小班每个可分20个  2020-07-24 …

李老师习来20个羽毛球,分给三年级3个班的同学,平均每个班分多少个?还剩下多少个羽毛球?如果每班分7  2020-10-30 …

家具公司制作木质的书桌和椅子,需要木工和漆工两道工序.己知木工平均四个小时做一把椅子,八个小时做一张  2020-11-13 …

家具公司制作木质的书桌和椅子,需要木工和漆工两道工序.己知木工平均四个小时做一把椅子,八个小时做一张  2020-11-13 …

某家具公司制作木质的书桌和椅子两种家具,需要木工和漆工两道工序,已知木工平均四个小时做一把椅子,八个  2020-11-13 …