所以我尝试在python中使用regex从BibTex获取字符串。这是我的一部分绳子:
a = '''title = {The Origin ({S},
{Se}, and {Te})- {TiO$_2$} Photocatalysts},
year = {2010},
volume = {114},'''
我想抓住标题的字符串,那就是:
^{pr2}$我现在有这个代码:
pattern = re.compile('title\s*=\s*{(.*|\n?)},\s*\n', re.DOTALL|re.I)
pattern.findall(a)
但它只给我:
['The Origin ({S},\n {Se}, and {Te})- {TiO$_2$} Photocatalysts},\n year = {2010']
如果没有year
信息,如何获得整个标题字符串?
很多时候,year
不在title
之后。所以我不能使用:
pattern = re.compile('title\s*=\s*{(.*|\n?)},\s*\n.*year', re.DOTALL|re.I)
pattern.findall(a)
取决于你希望你的正则表达式有多普遍。我想您希望您的字符串能够包含{和},因此使用它来标记模式的结尾将导致问题。也可能有多个括号。在
这里有一个想法,如果你在正则表达式末尾查找单词year,假设它是常量,会怎么样。在
使用较新的^{} :
虽然它不是真正需要的,但它提供了一个替代的解决方案。在
一个快速的解决方案是修改regex模式
相关问题 更多 >
编程相关推荐