我使用caliber将pdf转换为epub文件。当我查看epub时,当我在智能手机上查看时,我可以看到不必要的换行符。
我想使用正则表达式来识别这些情况:
<lower_case_character><space_character></p><p class="calibre2"><lower_case_character>
并将其转换为:
<lower_case_character><space_character><lower_case_character>
有人能为我提供正确的搜索并替换正则表达式吗?
感谢。
答案 0 :(得分:0)
我想你要删除Caliber添加的不必要的类属性.. 我不知道是不是想制作一个将pdf转换为epub的脚本,或者你想分别编辑ePub。 要编辑ePub并删除无用的类,您可以轻松解压缩ePub文件。 您可以使用WinRar将epub的内容解压缩到一个文件夹,编辑生成的HTML文件。然后再次重新拉链以使其成为ePub。
答案 1 :(得分:0)
只要您使用的编辑器具有外观功能,请尝试使用&#34;搜索&#34;:
(?<=[a-z])\b</p><p class="calibre\d">(?=[a-z])
在&#34;替换&#34;简单地放一个空格。
在上面的代码中,这个(?<=[a-z])
是一个积极的外观&#34;查找,但不替换要替换的文本块之前的小写字母。
同样,这个(?=[a-z])
是一个积极的前瞻&#34;查找,但不替换要替换的文本块后的小写字母。
&#34;口径&#34; calibre\d
应该捕获其他类,例如calibre1或calibre3等。
您可以在此处试用:http://gskinner.com/RegExr/
以下内容更加强大,并且会查找标签两侧可能有额外空格的Calibre标签:
(?<=[a-z])(\b|\s)(</p><p class="calibre\d">)(\b|\s)(?=[a-z])
答案 2 :(得分:0)
尝试一下:
(?x) (?<! \. (co|d ) )
(?<C>\b\p{L}+) [-] \s*
</p> \s* (<(?<XX>div|p)[^<>]*>\s* </\g<XX>>\s* )* <p[^<>]*>
(?<D>[\p{L}]+\b )
|
(?x) (?<! \. (co|d ) )
(?<A>[\p{N}\p{L}–,—] )\s* (?<B>(</(\w+)>)*)?
</p> \s* (<(?<XX>div|p)[^<>]*>\s* </\g<XX>>\s* )* <p[^<>]*>
(?<C>(<(\w+)\b[^<>]*>)*)?
\s*(?<D>[\p{L}] )
|
(?x)(?-i) (?<! \. (co|d ) )
(?<A>[\d\p{Ll}\p{N}] | \p{Ll}-)\s* (?<B>(</(\w+)>)*)?
</p> \s* (<(?<XX>div|p)[^<>]*>\s* </\g<XX>>\s* )*<p[^<>]*>
(?<C>(<(\w+)\b[^<>]*>)*)?
\s*(?<D>[\p{Ll}] ) (?i)
|
(?x)(?-i) (?<! \. (co|d ) )
(?<A>[’] | \p{L}-)\s* (?<B>(</(\w+)>)*)?
</p> \s* (<(?<XX>div|p)[^<>]*>\s* </\g<XX>>\s* )*<p[^<>]*>
(?<C>(<(\w+)\b[^<>]*>)*)?
\s*(?<D>[\p{L}] ) (?i)
|
(?x)(?i) (?<! \. (co|d ) )
(?<A>\b (ca|Dr|Mr|Ms|Mrs|St) [.․] )\s* (?<B>(</(\w+)>)*)?
</p> \s* (<(?<XX>div|p)[^<>]*>\s* </\g<XX>>\s* )*<p[^<>]*>
(?<C>(<(\w+)\b[^<>]*>)*)?
\s*(?<D>[\p{L}] ) (?i)
替换:
\g<A>\g<B> \g<C>\g<D>