我需要在双引号之间匹配换行符,如:
<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/