Python 后视正则表达式问题 : Invalid regular expression: look-behind requires fixed-width pattern

标签 python regex calibre

我需要在双引号之间匹配换行符,如:

<p class="calibre1">“This is the first sentence.</p>
<p class="calibre1">And this is the second!”</p>

这将匹配 </p> <p class="calibre1">

现在,我可以使用正则表达式 (?<=“[^”]*)</p>\s*<p[^>]*>(?!“)但是当我尝试非手动使用它时,我收到标题中描述的错误:“无效的正则表达式:后视需要固定宽度的模式”。我需要这个用于电子书管理/编辑程序 Calibre 的正则表达式,它使用 Python 作为其正则表达式引擎。上面的正则表达式适用于手动搜索书籍,但是当我尝试将正则表达式作为“常用选项”(在每次电子书转换时运行)时,我得到了那个错误。

如果没有可变宽度的后视,我不知道如何做到这一点,因为您不知道从左双引号到换行符需要多长时间。非常感谢您的帮助!

最佳答案

Python re 模块,与大多数语言一样(.NET 除外),不支持可变长度回顾。

你不能用capturing group吗?相反?

“[^”]*(</p>\s*<p[^>]*>)

first capturing group 中的数据.

关于Python 后视正则表达式问题 : Invalid regular expression: look-behind requires fixed-width pattern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23781292/

相关文章:

python - 为什么有些库只编写私有(private)类函数,然后分配一个公共(public)变量来公开它们?

jQuery 允许手机号码指定特定号码

javascript - 正则表达式用拉丁语中的重音字符拆分单词

pdf - 批量转换并将裁剪后记转换为pdf

Python、Calibre、从 URL 链接打开 exe

python - SQLAlchemy ORM 是大型数据的正确选择吗?

python - Python 有标准的 PTS 阅读器或解析器吗?

python 3 : Print multiple lines to one line

regex - 执行大型正则表达式操作的最佳方法是什么?

pdf - Calibre 安装失败