regex - Sigil 编辑器:正则表达式字符串在文本中查找(连字符)字符,但不是 html 属性
问题描述
我的问题:我使用Sigil编辑电子书的 xhtml 文件。
从 InDesign 导出到 ePub 时,我勾选选项以删除强制换行符。此操作删除了所有-
由 InDesign 自动生成的连字符,但在我的分词微调期间手动添加的字符仍保留在文本中。Sigil 搜索的当前能力:通过-
解析所有内容进行搜索,包括 css 类名。
TODO:如何构造正则表达式查询,该查询-
在文本中找到,但不在 html 代码中?谢谢!
我已经尝试过的https://www.mobileread.com/forums/showpost.php?p=4099971&postcount=169
::
这是一个简单的示例,可以在标签本身之外查找单词“title” ,这是我能想到的最简单的正则表达式搜索。它假定 body 标记中没有裸文本,并且 xhtml 格式正确。
我试过了,它似乎工作。可能有更好更详尽的正则表达式,甚至可以处理损坏的 xhtml。
代码:
title(?=[^>]*<)
这基本上是说搜索“标题”,但在找到下一个开始标签字符“<”之前先确保没有结束标签字符“>”。
可能有一些可以使用反向逻辑的版本。并且有一些方法可以使用正则表达式来查找忽略任何中间标签的两个字符串。
试试看。您可以轻松添加保存的搜索来做到这一点。但同样它不会处理跨越元素(树中的节点)的文本的查找和替换。这是困难的部分,除非您将匹配的子字符串与替换子字符串进行一对一的匹配,而替换子字符串通常不需要这种情况。
当然,如果您在字符串中使用<
and>
来显示“标签”或代码片段,则会错误地找到这些内容,因此需要在替换之前检查每个查找。
解决方案
推荐阅读
- python - 正则表达式 - 仅在数字之后和括号之前获取字符串(例如 1.Manhattan (NY))
- python - 为什么 vpython 在某些情况下无法显示多个球体?
- javascript - 反应全局变量未在传递给子组件的函数内部更新
- java - R8:IR 转换期间出现 NullPointerException
- java - java中的基本for循环和数据存储
- php - 找不到 Ratchet 的 vendor/autoload.php
- azure - Azure Functions - 注入的 ILogger
日志没有出现 - javascript - 使用jQuery动画覆盖body标签的背景颜色
- android - 如何在 Android 主屏幕上显示自定义对话框?科特林
- php - 我对 MySQL 中的“UPDATE”命令有疑问