先看几个DOI的例子:

  • 10.1093/nar/gkh458
  • 10.1146/annurev.micro.112408.134233
  • 10.1183/09031936.02.00400202

可以看出,DOI的编码以“10”开始,可以含有数字]0-9],小数点,斜杠等分隔,但是其中不会出现空格。鉴于此,在perl中使用以下正则表达式匹配:

[cc lang=”perl”]
$str1 =~ /10\.[^\s\/]+\/[^\s]+/; # borrowed from Zotero
$str2 =~ /\b(10\.\d+\/[^\s]+)\b/; # another one
[/cc]

作者简介

Chun-Hui Gao is a Research Associate at Huazhong Agricultural University.

重复使用

Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The source code is licensed under MIT. The full source is available at https://github.com/yihui/hugo-prose.

欢迎修订

如果您发现本文里含有任何错误(包括错别字和标点符号),欢迎在本站的 GitHub 项目里提交修订意见。

引用本文

如果您使用了本文的内容,请按照以下方式引用:

gaoch (2012). 使用正则表达式匹配DOI. BIO-SPRING. /post/2012/03/10/2012-03-10-using-regex-match-doi/

BibTeX citation

@misc{
  title = "使用正则表达式匹配DOI",
  author = "gaoch",
  year = "2012",
  journal = "BIO-SPRING",
  note = "/post/2012/03/10/2012-03-10-using-regex-match-doi/"
}