首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rebol分析中,如何检查输入的开始?

在Rebol分析中,如何检查输入的开始?
EN

Stack Overflow用户
提问于 2018-09-18 18:59:51
回答 2查看 130关注 0票数 2

我需要一条规则,叫它AT- begin,它与输入的开始相匹配。

也许它存在,或者如何实现它?

我想要做的例子:

  1. 解析"x“AT-开始"x”=>匹配
  2. 将“{某些其他字符}x”解析为"x“AT-chars "x”=> no-match。

动机:

我正在尝试解析一些类似于标记的模式,其中'*‘开始强调,但只有在空格之后或文本开头的情况下:空格__ at -开始强调

使用@hostilefork解决方案,我可以编写:[to "*" pos: [if (head? pos) | (pos: back pos) :pos space] skip ...]

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-18 20:08:45

没有这样的规则。但是,如果存在,则必须明确地定义它是否位于series...or的开头,即要求您从何处开始解析。这是成功还是失败?

代码语言:javascript
复制
parse (next "cab") [to "a" begin skip "b"]

它不是在本系列的开头,但是解析位置没有移动。这算开始吗?

如果您只想在本系列的开头进行测试:

代码语言:javascript
复制
[to "a" pos: if (head? pos) ...]

您必须在开始时捕获该位置,或者以其他方式了解该位置,以查看解析位置是否有任何进展:

代码语言:javascript
复制
[start: to "a" pos: if (pos = start) ...]
票数 1
EN

Stack Overflow用户

发布于 2018-09-19 11:58:56

也许不完全是你想要的,但是找到第一个匹配可以通过下面的步骤来完成。

你必须搜索"b“和"a”后面的补语模式。

代码语言:javascript
复制
>> text-to-searh: "jjjj ball  adran"
>> b*: complement charset "b"
>> parse/all text-to-search [ any [ b* #"a" | "a" hit:  to end | skip ] ]
>> probe hit
"ll  adran"

需要进行一些修改,以匹配第一个字符是"a“的情况。hit将位于"a“后面的字符处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52393019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档