Rebol / Red Parse html规则返回true但没有插入任何内容

2024-05-30

我有一个返回 true 的解析规则,但它没有按预期插入我的文本:html 未更改,而它应该插入到主结束 div 的末尾。我尝试使用类似的计数器如何使用 REBOL 解析 HTML 标签内部? https://stackoverflow.com/questions/6388286/how-to-parse-inside-html-tags-with-rebol

更新:我也不知道如何在 counter = 0 时立即中断解析,以免在 main 之后的最后一个关闭 div 之前插入文本。

    content: {<div class="main">
      <h1>
        Big TITLE
      </h1>
      <div>
        <section>
          <p>a paragraph</p>
        </section>
         <section>
          <p>a paragraph</p>
        </section>
          <section>
          <p>a paragraph</p>
        </section>
       </div>
       <div>
          <p>Blah Blah</p>
       </div>

    </div>
    <div>
      Another Div
    </div>
    }

    rules: [
      thru <div class="main">
      (div-count: 1)
      some [
        to "<div" (++ div-count) thru "<div" thru ">"
        |
        to </div> mark: (-- div-count if div-count = 0 [insert mark "closing main div"]) thru </div>
      ]
      to end 
    ]
    parse content rules

这里有一个解决方案probe调试

rules: [
     thru <div class="main">
     (div-count: 1)
      some [
        "<div" (probe ++ div-count) skip
      |
        "</div>" mark:  ( probe -- div-count   if div-count = 0 [insert mark "closing main div"]) skip 
      |  skip
     ]
  ]
parse/all content rules 

您的规则的问题是,div 计数永远不会或很少被减去。解析指针直接指向下一个开口div as to始终是第一个满足的条件。

如果添加一个,您可以突破或更好地从解析返回to end条件成功后。如果您不确定使用括号进行分组【子规则成功……结束】

带有最终规则的示例

end-rule: [] ; or none
rules: [
    thru <div class="main">
    (div-count: 1)
    some [
        ["<div" (++ div-count) skip]
    |
        ["</div>"mark:  (-- div-count   if div-count = 0 [insert mark "closing main div"  end-rule: [to end]]) end-rule ]
    |  skip
]

]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rebol / Red Parse html规则返回true但没有插入任何内容 的相关文章

  • 如何向 Parse Signup 功能添加额外属性?

    我想向我的解析注册函数添加一个额外的属性 我的代码就像 signUp function e var self this var username this signup username val var password this sign
  • PHP - 解析具有固定列宽的文本文件

    我是 PHP 和 Laravel 的新手 我需要打开文件并解析内容以将它们传递到数据库 文本文件具有固定的列宽 它没有分隔符或标题 我认为使用子字符串并将每个子字符串分配给变量将是正确的方法 但我仍在学习该语言的过程中 我不知道如何实现这一
  • 使用 PEG.js 忽略空格

    我想忽略空格 and 新线路按照我的语法 所以它们在PEG js http pegjs majda cz online输出 此外 括号内的文字应在新数组中返回 Grammar start a sep cat dog sep sep stmt
  • 是否可以使用 fparsec 解析“越位”(基于缩进)语言?

    我希望将 FParsec 用于基于缩进的类似 python 的语言 我知道这必须在词法分析阶段完成 但 FParsec 没有词法分析阶段 是否可以使用 FParsec 或者 词法分析后如何提供它 P D 我是 F 新手 但在其他语言方面经验
  • 使用 Boost Spirit 和 Fusion 以关联方式解析结构

    我正在尝试将键值字符串解析为结构 一些键值可能不存在或者顺序不同 所以我想使用boost fusion调整结构 然后解析它at key lt gt 指示 include
  • 在自定义对象中映射 JSON 对象

    我一直在搜索是否可以获取 JSON 字典或数组并将其直接映射到属性与 JSON 标签同名的自定义对象中 但我没有找到任何相关信息 我一直在手动解析 JSON 字典 如下所示 id deserializedObj nil id jsonObj
  • 伊德里斯统一意外失败

    我正在尝试在 Idris 中创建一个所谓的可判定解析器 起初我只是想解析自然数 但遇到了一个意想不到的问题 生成它的代码的最小示例如下 data Digit Char gt Type where Zero Digit 0 One Digit
  • [Nearley]:如何解析匹配的开始和结束标记

    我正在尝试用nearley 解析一种非常简单的语言 您可以在匹配的开始和结束标记之间放置一个字符串 并且可以链接一些标记 它看起来像一种 XML 但带有 代替 lt 标签总是 2 个字符长 并且没有嵌套 aa My text aa ab A
  • 使用 ANTLR4 识别单行中的多行注释

    我想用 ANTLR4 解析 PostScript 代码 我完成了语法 但是一种特定的语言扩展 由其他人引入 很难被识别 一个简短的例子 1 This is a line comment 2 The next line just pushes
  • 在 Python 中解析 TCL 列表

    我需要在双括号上拆分以空格分隔的 TCL 列表 例如 OUTPUT 172 25 50 10 01 01 Ethernet 172 25 50 10 01 02 Ethernet Traffic Item 1 172 25 50 10 01
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • 从 C/C++ 解析简单的 MIME 文件?

    我已经在网上搜索了好几天 但似乎找不到解决我的问题的好方法 对于我的一个项目 我正在寻找一个好的 轻量级 MIME 解析器 我的客户提供 MIME 格式的文件 线性 无层次结构 其中包含 3 4 个 部分 应用程序必须能够拆分这些部分并独立
  • 通过 Lark 解析获取符号

    我正在尝试解析我正在编写的一些伪代码 但在获取符号值时遇到一些问题 它解析成功 但不会返回与 常规 字符相同的值 这是一个例子 gt gt gt from lark import Lark gt gt gt parser Lark oper
  • python 中字符串到 OrderedDict 的转换

    我通过导入集合创建了一个 python 有序字典并将其存储在名为 filename txt 的文件中 文件内容看起来像 OrderedDict 7 0 6 1 5 2 4 3 我需要从另一个程序使用这个 OrderedDict 我这样做 m
  • 为什么 string.Empty 比 "" 更推荐?

    Why is string Empty比更推荐 是因为当编译器解析代码时 来了 编译器会准备好读取一个字符串吗 但在string Empty编译器甚至不会准备好读取字符串 还有另一个原因 常量 由于其本质 是一个 静态是对某个应用程序域中所
  • Python:通过xpath获取html表数据

    我觉得从 html 表中提取数据非常困难 并且需要为每个站点进行自定义构建 我非常希望在这里被证明是错误的 是否有一种简单的 Pythonic 方法可以通过使用感兴趣的表的 url 和 xpath 从网站中提取字符串和数字 Example
  • 使用 CSS 选择器和 BeautifulSoup 获取属性值

    我正在抓取网页Python并使用BeutifulSoup library I have HTML像这样的标记 tr class deals span class hotel name a href www example2 com a sp
  • 带有转义字符的 JavaCC 引用

    标记可以包含转义字符的带引号的字符串的常用方法是什么 这里有些例子 1 this is good 2 this is good 3 this is good 4 this is bad 5 this is bad 6 this is bad
  • 接受 05/05/1999 和 5/5/1999 等的日期时间解析

    有没有一种简单的方法来解析可能为 MM DD yyyy M D yyyy 或某种组合的日期 即 在一位数字的日期或月份之前 零是可选的 要手动执行此操作 可以使用 String dateFields dateString split int
  • Xcode 6.3 Parse SDK 1.7.1 PFTableViewCell 错误“具有不兼容的类型”

    My code override func tableView tableView UITableView cellForRowAtIndexPath indexPath NSIndexPath object PFObject gt PFT

随机推荐

  • 使用 javascript 从亚马逊 URL 中抓取 ASIN

    假设我有一个像这样的亚马逊产品 URL http www amazon com Kindle Wireless Reading Display Generation dp B0015T963C ref amb link 86123711 2
  • REST API 路由最佳实践

    我想知道当订单是一种资源时 为以下场景创建 REST API 的最佳实践是什么 获取数据库中的所有订单 当然不是实际场景 仅供理解 通过订单ID获取订单 根据订单ID获取单个订单 单个 GET 路由是否可以用于所有这些场景 或者我们应该针对
  • 在Flutter中,如何使按钮和文本字段具有相同的高度?

    我知道TextField has TextStyle 其中有一个height财产 这只是一个基于的乘数fontSize 但是如何使所有小部件具有相同的高度 无论字体大小 此外 是否有以下等效方法 在几乎任何其他编程语言中 btnLogin
  • WPF DataGrid 选定项

    我有一个 DataGrid 用户可以通过在最后一行输入数据来添加项目 我还有一个按钮可以删除当前选定的项目 但是 当选择最后一行 空 用于添加新项目 时 最后选定的项目将保留在 SelectedItem 中 因此 如果我打开窗口 选择最后一
  • 会话销毁后如何使 viewscoped beans/viewmap 生存(使用客户端保存)?

    我在用着Myfaces 2 2 具有客户端状态保存功能 我看到 ViewScoped beans 和存储在 viewmap 中的数据在用户会话销毁后丢失 我开始知道 不确定这是否正确 这是预期的行为 但是在会话销毁后避免查看过期异常的方法是
  • Docker Python 脚本找不到文件

    我已经成功构建了一个 Docker 容器 并将应用程序的文件复制到 Dockerfile 中的容器中 但是 我正在尝试执行引用输入文件 在 Docker 构建期间复制到容器中 的 Python 脚本 我似乎无法弄清楚为什么我的脚本告诉我它无
  • 基于 Web 请求在 Airflow 上运行作业

    我想知道是否可以在通过 HTTP 收到请求时执行气流任务 我对 Airflow 的调度部分不感兴趣 我只是想用它来代替芹菜 因此 示例操作如下所示 用户提交一份表格 请求某些报告 后端接收请求并向用户发送请求已收到的通知 然后后端使用 Ai
  • 在 Android 中将列表传递给另一个 Activity

    我已经创建了一个列表 并希望将该列表传递给另一个活动 但当我创建意图时 我在 putExtra 语句上收到错误 只是想知道是否有任何简单的方法来传递字符串列表而不是单个字符串 Thanks private List
  • R 中的 ddply:对于每个组,查找特定变量的出现百分比

    我有一个数据集 其中包含两列 user type 和滞后响应时间 以天为单位 user type imp date lag Consumer 20130613 1 Consumer 20130612 2 Consumer 20130611
  • 在java中打印阿拉伯字符串

    我试图在 java 中显示阿拉伯语文本 但它显示垃圾字符 示例 或有时在我打印时仅显示问号 我如何才能打印阿拉伯语 我听说它与unicode和UTF 8有关 这是我第一次使用语言 所以不知道 我正在使用 Eclipse Indigo IDE
  • 如何在您的网站中连接两个人

    有一款名为 Verbosity 的游戏 这是一款有目的的游戏 位于此链接上www gwap com 在游戏中 他们随机连接两个玩家互相玩 游戏是玩家1应该向他的搭档 玩家2 描述一个单词 而玩家2应该猜测这个单词 我正在尝试建立一个网站来执
  • 服务器端文件验证在 Yii.2.0 中不起作用

    Is the FileValidatorYii2 中的类只支持客户端验证 我使用代码编写了文件上传系统 在模型中 public function rules return allAllowedFileType safe allAllowed
  • 如何将命令输出作为多个参数传递给另一个命令

    我想将命令的每个输出作为多个参数传递给第二个命令 例如 grep pattern input returns file1 file2 file3 我想复制这些输出 例如 cp file1 file1 bac cp file2 file2 b
  • Python 中的可逆 STFT 和 ISTFT

    有没有通用的形式短时傅立叶变换 https en wikipedia org wiki Short time Fourier transform与内置于 SciPy 或 NumPy 或其他什么中的相应逆变换 这是pyplotspecgram
  • 从 HDF5 文件中删除信息

    我意识到 SO 用户以前曾问过这个问题question https stackoverflow com questions 1124994 removing data from a hdf5 file rq 1但它是在 2009 年被问到的
  • 将代码从没有权限的存储库推送到私有存储库?

    我有一个来自外部存储库 我们称之为 ExRepo 的文件夹 我没有任何推送权限 我有一个名为 MyOwnRepo 的个人存储库 如何获取 ExRepo 并将其合并到 MyOwnRepo 中 我已经尝试过这个 C Users
  • 如何在 Restful Web 服务中指定一系列数据或多个实体

    要访问 Restful Web 服务中的 User 实例 URL 的结构如下面的curl 请求所示 curl v X GET s BASE URL User customer id json 如果我想指定所有用户实体或对一系列用户实体进行分
  • 如何在 MATLAB 中为 4 个子图创建一个通用图例?

    如何在 MATLAB 中为 4 个子图创建一个通用图例 如下所示 又快又脏 hSub subplot 3 1 1 plot 1 1 1 1 1 1 1 1 hLegend legend hello i am legend subplot 3
  • 从“class”名称中删除/替换不需要的前缀信息

    我正进入 状态style从后端 它带有不需要的前缀 我会替换没有前缀的相同内容 正确的方法是什么 这就是我得到的
  • Rebol / Red Parse html规则返回true但没有插入任何内容

    我有一个返回 true 的解析规则 但它没有按预期插入我的文本 html 未更改 而它应该插入到主结束 div 的末尾 我尝试使用类似的计数器如何使用 REBOL 解析 HTML 标签内部 https stackoverflow com q