我知道这里有很多类似的“组合 2 个正则表达式”帖子,但我已经尝试了解决方案并不断出错。
我有正则表达式来解析描述,例如:
Org Biomol Chem. 2011 May 7;9(9):3549-59. doi: 10.1039/c1ob05128h. Epub 2011 Mar 28.
提取 DOI(数字对象标识符):
([^:]+$)
--> 10.1039/c1ob05128h。电子版 2011 年 3 月 28 日。([^\s]+)
--> 10.1039/c1ob05128h。
但是对于如何将这些结合起来我一无所知。如果这很困难,那么就没有必要,但会简化我的计算。
我也不知道如何摆脱最后一个“。” 这不是 DOI 字符串的一部分(为了记录,DOI 中可能有超过 2 个句号,因此正则表达式不能简单地是“在第二个句号之后”)。
应要求提供的其他一些示例:
Chem Soc Rev. 2008 Nov;37(11):2413-21. doi: 10.1039/b719548f. Epub 2008 Sep 16.
Small. 2010 Dec 20;6(24):2796-820. doi: 10.1002/smll.201001881. Review.
Org Lett. 2010 Oct 1;12(19):4248-51. doi: 10.1021/ol101920b.
Chemistry. 2010 Dec 27;16(48):14285-9. doi: 10.1002/chem.201002111. No abstract available.
到目前为止,我所做的所有尝试都给出了与此大致相同的结果:
杜克林建议的“doi: ([^\s]+).? ([^:]+).?”的一些例外,原因不明,是:
- 化学通讯(Camb)。2012 年 12 月 25 日;48(99):12094-6。doi: 10.1039/c2cc35588d。
- 组织生物分子化学。2013 年 1 月 7 日;11(1):27-30。doi:10.1039/c2ob26587g。
- 化学通讯(Camb)。2013 年 1 月 25 日;49(7):671-3。doi: 10.1039/c2cc37953h。
- 组织莱特。2010 年 10 月 1 日;12(19):4248-51。doi:10.1021/ol101920b.化学。2010 年 7 月 26 日;16(28):8537-44。doi: 10.1002/chem.201000773。
- 化学通讯(Camb)。2012 年 12 月 25 日;48(99):12094-6。doi: 10.1039/c2cc35588d。
- 组织生物分子化学。2013 年 1 月 7 日;11(1):27-30。doi:10.1039/c2ob26587g。
- 化学通讯(Camb)。2013 年 1 月 25 日;49(7):671-3。doi: 10.1039/c2cc37953h。
- 组织莱特。2010 年 10 月 1 日;12(19):4248-51。doi: 10.1021/ol101920b。
- 化学。2010 年 7 月 26 日;16(28):8537-44。doi: 10.1002/chem.201000773。