Python:解析tex时如何使用%%%

2024-06-09 21:09:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试着分析电子书里的文字古腾堡网提取有关书籍的信息,例如标题。在

上面的每本书都有这样一句话:

*** START OF THIS PROJECT GUTENBERG EBOOK THE ADVENTURES OF SHERLOCK HOLMES *** 

我想用这样的东西:

^{pr2}$

但我显然做得不对。有人能告诉我是怎么做的吗??在


Tags: oftheproject信息标题电子书thisstart
3条回答
import urllib.request

url = 'http://www.gutenberg.org/cache/epub/1342/pg1342.txt'
book = urllib.request.urlopen(url)
lines = book.readlines()
book.close()



import re

title_regex = re.compile(b'\*{3} START OF THIS PROJECT GUTENBERG EBOOK (.*?) \*{3}')

for index, line in enumerate(lines):
    match = title_regex.match(line)

    if match:
        book_name = match.group(1)
        print(book_name)

Regex是一条出路:

import re

title_regex = re.compile(r'\*{3} START OF THIS PROJECT GUTENBERG EBOOK (.*?) \*{3}')

for index, line in enumerate(finalLines):
    match = title_regex.match(line)

    if match:
        book_name = match.group(1)
        print(index, book_name)

也可以逐行解析:

^{pr2}$

最简单的解决方案:

sp = line.split()
if sp[:7]+sp[-1:] == '*** START OF THIS PROJECT GUTENBERG EBOOK ***'.split():
    bookname = ' '.join(sp[7:-1])

一个更好的解决方案将使用正则表达式,正如建议的那样。在

如果使用字节,则应使用b'*** START OF THIS PROJECT GUTENBERG EBOOK ***',或对任何字节字符串使用bytes.decode(s)。在

您的代码段(带有urlopen()部分)可能如下所示:

^{pr2}$

相关问题 更多 >