Python中文
首页
教程
问答
标签
搜索
登录
注册
python正则表达式查找跨越多行的匹配项
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>所以我尝试在python中使用regex从BibTex获取字符串。这是我的一部分绳子:</p> <pre><code>a = '''title = {The Origin ({S}, {Se}, and {Te})- {TiO$_2$} Photocatalysts}, year = {2010}, volume = {114},''' </code></pre> <p>我想抓住标题的字符串,那就是:</p> ^{pr2}$ <p>我现在有这个代码:</p> <pre><code>pattern = re.compile('title\s*=\s*{(.*|\n?)},\s*\n', re.DOTALL|re.I) pattern.findall(a) </code></pre> <p>但它只给我:</p> <pre><code>['The Origin ({S},\n {Se}, and {Te})- {TiO$_2$} Photocatalysts},\n year = {2010'] </code></pre> <p>如果没有<code>year</code>信息,如何获得整个标题字符串? 很多时候,<code>year</code>不在<code>title</code>之后。所以我不能使用:</p> <pre><code>pattern = re.compile('title\s*=\s*{(.*|\n?)},\s*\n.*year', re.DOTALL|re.I) pattern.findall(a) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>取决于你希望你的正则表达式有多普遍。我想您希望您的字符串能够包含{和},因此使用它来标记模式的结尾将导致问题。也可能有多个括号。在</p> <p>这里有一个想法,如果你在正则表达式末尾查找单词year,假设它是常量,会怎么样。在</p> <pre><code>pattern = re.compile('title\s*=\s*{(.*?)},\s*\n\s*year', re.DOTALL|re.I) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
2 回答
文本小部件:在没有输入时更新并在循环后保持空闲
8 回答
文本小部件tkin
1 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
2 回答
文本小部件tkinter复制图像选项
8 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
1 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
10 回答
文本小部件不显示lis中的内容
4 回答
文本小部件不显示Unicode字符
5 回答
文本小部件中写入的行间距
3 回答
文本小部件中的文本作为变量
8 回答
文本小部件中的滚动条仅显示在底部
2 回答
文本小部件中的选项卡键空间计数
8 回答
文本小部件作为Lis
8 回答
文本小部件在主框架中扩展列宽
10 回答
文本小部件未使用删除功能清除
3 回答
文本小部件滚动动画(Tkinter、Python)
1 回答
文本居中。格式正确吗?
8 回答
文本差分算法
8 回答
文本已知时音频文件中的单词索引
9 回答