gpt4 book ai didi

python - 通过正则表达式修复 .bib 文件标题

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:05 26 4
gpt4 key购买 nike

在 .bib 文件中准备好 LaTeX 引用书目后,我发现存在大小写问题。

根据:this信息,解决方案是为每个标题中的每个单词添加括号(据我检查,为整个标题添加括号不起作用)。

例如,我希望更改:

title   = "What a interesting title",
title= "What a boring title",
title="What a crazy title",

至:

title   = "{What} {a} {interesting} {title}",
title= "{What} {a} {boring} {title}",
title="{What} {a} {crazy} {title}",

所以:

title <any number of spaces> = <any number of spaces> " <words in title> ",

应替换为:

title <any number of spaces> = <any number of spaces> " <{Each} {word} {in} {title} {should} {be} {in} {bracket}> ",
<小时/>

我试图通过 Python 中的正则表达式来做到这一点,但不知道出了什么问题。

我的代码:

re.sub(r'(title[\s-]*=[\s-]*\")(\b(\w+)\b)',r'\1{\2}',line)

仅向第一个单词添加括号。

最佳答案

这对字符串的第一部分使用负前瞻:

>>> import re
... s = """title = "It's an interesting title",
... title= "What a boring title",
... title="What a crazy title","""
... print(re.sub(r'(?!title\s*=\s*")\b(\S+)\b',r'{\1}',s))
title = "{It's} {an} {interesting} {title}",
title= "{What} {a} {boring} {title}",
title="{What} {a} {crazy} {title}",

参见http://regex101.com/r/hL2lE6/6

更新:Avinash Raj 对可能出现在标题中的特殊字符(例如撇号)提出了很好的观点,因此我将 \w+ 更改为 \S+ 并更新了示例文本进行测试。

注意:如果您的标题包含以特殊字符结尾的单词,并且需要将该字符包含在括号中,请参阅此处获取解决方案:http://regex101.com/r/hL2lE6/11

它使用(?!title\s*=\s*")\b([^"=\s]+)。但是,您主要关心的是大小写,所以这可能并不重要。在这种情况下,我建议保持简单并坚持使用 \S+

关于python - 通过正则表达式修复 .bib 文件标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27202312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com