【问题标题】:Regular expression to extract info from journal reference从期刊参考中提取信息的正则表达式
【发布时间】:2013-12-09 00:01:37
【问题描述】:

如果我有一个带有给定期刊参考的字符串,格式如下

ref="Carlson, A., Bernier, U.R., Hogsette, J.A., and Sutton, B.D. 2001. Distinctive hydrocarbons of the black dump fly, Hydrotaea aenescens (Diptera: Muscidae). Arch. Insect Biochem. Physiol. 48:167-178."

然后我想在 R 中提出好的gsub 表达式来提取第一作者、期刊和卷加页。对于我已经想出的年份和作者

year=strsplit(sub('^\\D*', '',ref),". ")[[1]][[1]]
year
"2001"
author=gsub("[^a-zA-Z0-9 ]","",strsplit(ref,"\\., ")[[1]][[1]])
author
"Carlson A"

但是我很难为期刊以及卷和页找到一个好的表达方式。有人有什么想法吗? (理想情况下,卷和页应该被检测为包含数字、句号或冒号的字符串的最后一个字符,并且期刊应该由第一次删除后位于年份和卷+页之间的部分组成第一部分介于年份(加上句号)和下一个句号之间,应该是标题)

干杯,汤姆

【问题讨论】:

  • 你能给出一个明确的输出吗?

标签: regex string r gsub


【解决方案1】:

这里不需要使用gsub,只需strsplit。这应该是一个好的开始:

ll <- unlist(strsplit(ref,','))
ll[1]
[1] "Carlson"

strsplit(tail(ll,1),'[.]')
[[1]]
[1] " Hydrotaea aenescens (Diptera: Muscidae)" " Arch"                                   
[3] " Insect Biochem"                          " Physiol"                                
[5] " 48:167-178"   

【讨论】:

  • 嘿-谢谢-这是获取卷数和页码的好方法,但是期刊标题呢-提取起来更棘手,不是吗? (“Arch. Insect Biochem. Physiol.”)
  • @TomWenseleers - 我认为你已经被期刊标题所困扰。我看不出如何可靠地确定论文标题的结束位置和期刊的开始位置。也许您可以使用常见的词干,如 Arch.Journal ofJ. 或任何猜测。
  • @TomWenseleers 我不知道。我认为学术领域的 SO 贡献者会更有帮助..
  • 如何首先删除位于年份和第一个句号之间的字符串部分,并假设那是标题,然后假设剩下的音量信息是杂志?但是我怎样才能最优雅地做这样的事情呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多