我试图编写一个Python脚本,使用PyPDF2和下面的regex从pdf中提取doi,我找到了here。在
\b(10[.][0-9]{4,}(?:[.][0-9]+)*/(?:(?!["&\'])\S)+)\b
{I在下面的测试中使用^ doi可以很好地解决以下问题:
^{pr2}$File "/Users/fort/Documents/Dropbox/Code/Python/pdf2doi/pdf2doi.py", line 9
doi_re = re.compile("\b(10[.][0-9]{4,}(?:[.][0-9]+)*/(?:(?!["&\'])\S)+)\b")
^
SyntaxError: unexpected character after line continuation character
我的编辑器的语法高亮显示语法分析器不喜欢'])\S)+)\b")
,所以我尝试转义它前面的双引号,这样就解决了这个特殊问题,即
\b(10[.][0-9]{4,}(?:[.][0-9]+)*/(?:(?![\"&\'])\S)+)\b
然而,regex不再匹配doi。(将正则表达式括在单引号中也可以修复此语法错误,但结果相同。)
最后,如果我改用以下regex,脚本确实匹配一些doi,但它遗漏了不少:
10.(\d)+/([^(\s\>\"\<)])+
任何关于如何使这项工作的想法将不胜感激。在
你有一个更早的“你应该逃跑。在
如果这不起作用,请修复只指向常规页的regex101引用。在
填充regex和一些示例可以帮助我们进一步解决问题。在
不能在
"
引用的字符串中使用"
,除非使用\"
来传输它。在或者可以使用三个双引号:
"""\b(10[.][0-9]{4,}(?:[.][0-9]+)*/(?:(?!["&\'])\S)+)\b"""
相关问题 更多 >
编程相关推荐