不区分大小写的令牌匹配

2024-01-27

是否可以将语法设置为不区分大小写匹配。

例如一条规则:

checkName = 'CHECK' Word;

会匹配check nameCHECK name


的创造者PEGKit https://github.com/itod/pegkit here.

当前执行此操作的唯一方法是使用语义谓词以一种迂回的方式:

checkName = { MATCHES_IGNORE_CASE(LS(1), @"check") }? Word Word;

一些解释:

  • 语义谓词是直接从 ANTLR 提升的功能。语义谓词部分是{ ... }?。这些可以放置在语法规则中的任何位置。它们应该包含单个表达式或一系列以return计算结果为布尔值的语句。该表达式包含一个表达式。如果表达式的计算结果为false,当前规则的匹配(checkName在这种情况下)将fail. A true值将允许匹配继续进行。

  • MATCHES_IGNORE_CASE(str, regexPattern)是我定义的一个方便的宏,供您在谓词和操作中使用以进行正则表达式匹配。它有一个区分大小写的朋友:MATCHES(str, regexPattern)。第二个参数是NSString*正则表达式模式。意思应该是显而易见的。

  • LS(num)是另一个方便您在谓词/操作中使用的宏。这意味着获取一个前瞻字符串参数指定向前看多远。所以LS(1)意味着向前看1。换句话说,“获取解析器将要尝试匹配的第一个即将到来的标记的字符串值”。

  • 请注意,我仍然匹配Word twice在最后那里。首先Word对于匹配“检查”是必要的(即使它已经是tested在谓词中,它是未匹配和消耗)。第二Word是为了你的name管他呢。

希望有帮助。

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

不区分大小写的令牌匹配 的相关文章

  • JComboBox 的行为与 JTextField 不同。我怎样才能让它看起来相似?

    我有以下组合框 我可以在其中创建包含项目等的组合框 但外观与 JTextField 不同 我怎样才能使 JCombobox 看起来像 JTextField 一样 MyComboBox java import java awt Color i
  • 有没有办法从 bean 设置消息头?

    我有一条简单的骆驼路线需要修改 路线如下 from source uri unmarshal bean TransformMessageBean class SomeMethod to destination uri 我想在解组之后添加另一
  • 在实体框架中动态添加 where 子句

    我有这个sql语句 SELECT userID from users WHERE name name1 AND username username1 OR name name2 AND username username2 OR name
  • bash 脚本中 Cat 的替代方案?

    我对以下问题有疑问 exec 3 lt gt dev tcp 1 37491 echo ne 060e2b3 00 hexdec cmdhex perl pe s 0 9a f 2 chr hex 1 gie gt 3 cat lt 3 我
  • 如何从 Swift 4 中的 Decoder 容器获取未解码的属性?

    我正在使用Decodable协议以便解析从外部源接收到的 JSON 解码我所知道的属性后 JSON 中可能仍然有一些未知且尚未解码的属性 例如 如果外部源在未来某个时间点向 JSON 添加了新属性 我希望通过将这些未知属性存储在 Strin
  • 将基本 r 图保存为可以在多重图中绘制的对象

    这个问题是从一个相关帖子 https stackoverflow com questions 29583849 r saving a plot in an object它展示了如何轻松地将绘图存储为r对象与
  • QFileDialog 作为 TableView 的编辑器在失去焦点时关闭

    我有一个QTableView与相关的QAbstractTableModel其中某些列中包含目录名称 我想用一个QFileDialog作为编辑来更改这些列 这有点不寻常 因为编辑器不会位于表格单元格内 没有足够的空间 我使用了基础知识QSty
  • 如何在 R markdown 中注释掉 R 代码块?

    我正在编辑一个 R markdown 文件 Rmd 该文件包含大量 R 代码块 可将这些代码块组移动到 子 文档中 以简化重新排列部分 如果没有其他情况 当我将节转换为子文档时 我想测试新的子文档而不运行其余的块和其他子文档 但是 当我用来
  • Python 3.3 中的哈希函数在会话之间返回不同的结果

    我在 python 3 3 中实现了 BloomFilter 并且每次会话都得到不同的结果 深入研究这种奇怪的行为让我了解了内部 hash 函数 它为每个会话的同一字符串返回不同的哈希值 Example gt gt gt hash 235
  • 如何将ResponseEntity写入HttpServletResponse?

    如何将 ResponseEntity 写入 HttpServletResponse 因为它使 ResponseBody 例如我有身份验证成功处理程序 Override public void onAuthenticationSuccess
  • lucene 字段的 store 属性

    lucene Field有一个构造函数 Field String name String value Store store Index index 例如 我可以通过以下方式创建一个新字段 Field f1 new Field text T
  • 在android中创建自定义警报框

    我知道这个问题已经被回答过很多次了 但我找不到任何好的资源 任何人都可以告诉如何创建自定义警报框对于安卓 我想要的是一个漂亮的警报框 其中有一些图像文本等 基本上是 mu 应用程序信息 我知道如何创建简单的警报框 如果可能 请指出任何示例代
  • 有没有办法从意外的“svn revert”中恢复?

    今天早上 我做了以下事情 搬起石头砸了自己的脚 开始对我的项目进行更改 对一堆文件进行了大量编辑 意识到我的方法完全错误 我需要重新开始 cd 到我的项目的顶层并执行 svn recursive revert 将我的本地沙箱恢复到更改前的状
  • 无法使用 install_github() 安装 IRkernel:Git 未安装?

    我试图让 R 在我的 Windows 机器上使用 Jupyter Notebook 我跟着IR内核教程 https irkernel github io installation 但是 我无法安装 GitHub 存储库 总是出现错误 ins
  • 避免在 VBA 代码中的 mySQL 查询中使用换行符

    我有以下内容VBA从数据库中提取数据 Sub Get Data from DWH Dim conn As New ADODB Connection Dim rs As New ADODB Recordset Dim dateVar As D
  • Visual Studio 和 TFS,检测 Visual Studio 外部的更改[重复]

    这个问题在这里已经有答案了 我正在使用带有 ASP NET Web 应用程序的 Visual Studio 2015 并安装了 Umbraco 和 uSync uSync 和 Umbraco 是什么并不重要 但是当我启动项目并在 Umbra
  • Kerberos - SPN 和密钥表

    我有一个项目 其中嵌入了启用了 SPNEGO 的 jetty 我希望能够在本地运行该项目以用于开发目的 启用 SPNEGO 我的问题是 SPN 和 keytab 是否与特定服务器相关联 或者我可以在服务的多个实例上使用同一组吗 Kerber
  • IHTTPModule 在 ASP.NET 中在 HTTP 和 HTTPS 之间切换

    我正在开发一个网站 其中包含需要通过 SSL 保护的部分 我已配置网站 以便在始终处于 SSL 模式时运行正常 我在 IE7 IE8 FireFox Safari Chrome 中看到 SSL 挂锁 为了实现 SSL 切换 我创建了一个实现
  • facebook redirect_uri 设置为 ios URL 方案

    我开始研究如何以编程方式使用 Facebook 我已经在我的应用程序中设置了 URL 方案 以便我可以使用 myappopenup 从浏览器打开它 然后我在 Facebook 上创建了一个应用程序 复制一个 AppId 并尝试如下所示 le

随机推荐

  • SVG中foreignObject的特征检测

    我在 SVG 中使用foreignObject 元素 但是 IE9 不支持该元素 我正在寻找一种检测此功能的方法 Modernizr 没有检测到此功能 似乎我无法像使用矩形 createSVGRect 一样使用 createSVGForei
  • 如何从 Perl 程序打开 Excel(程序,而不是文件)?

    我目前在 Windows 中有一个 perl 程序 它通过 Spreadsheet WriteExcel 创建并填充一个 excel 文件 但我希望在程序关闭时打开该文件 我尝试用谷歌搜索信息 但我发现的只是如何在 perl 中打开和读取
  • mysql 复杂的sql

    我今天早些时候提出了一个问题 并得到了很好的答复 效果很好 这个问题的第二部分从未得到答复 所以我再试一次 SELECT q id q question a question id a answer a correct FROM SELEC
  • 将列从 VARCHAR(MAX) 更改为 VARBINARY(MAX)

    我有一张桌子 上面有一个VARCHAR MAX 列 我需要将其更改为VARBINARY MAX 我尝试使用命令 ALTER TABLE TableName ALTER COLUMN ColumnName VARBINARY MAX 但我得到
  • 具有语法着色功能的 HTML 编辑器 jQuery 插件

    我正在寻找一个 jQuery 插件 它将显示用于 HTML 创作和编辑的文本区域 我正在寻找的东西 必须支持编写 HTML 而不是所见即所得的表示形式 必须像任何富客户端 IDE 一样在您键入时为 HTML 着色 应该是 jQuery 但原
  • Git 格式补丁查看器?

    有人正在向我发送由 git format patch 生成的补丁 是否有一个 GUI 在 Linux 上 可以打开这些 patch 文件 我已经尝试了很多 diff gui 但它们所做的只是比较两个现有的文件 文件夹 没有人可以显示补丁 除
  • 在 Python 子进程中使用 Windows 路径(指向可执行文件)

    我开始在安装了 cygwin Python 2 7 的 Windows 7 x64 计算机上开发一个小型 pdf 到 jpg 脚本 以下效果完美 import subprocess filename test subprocess chec
  • 如何在不锁定 GUI 的情况下将数千个项目添加到绑定集合中

    我有一个设置 其中可能有数千个项目 认为 3000 5000 个 将添加到ObservableCollection绑定到一些可视化界面 目前 添加它们的过程非常慢 大约 4 秒 1000 个项目 当然 GUI 在此期间没有响应 有什么好方法
  • 等待 5-10 秒,然后运行 ​​Outlook 代码

    我的 Outlook 规则中有 VBA 代码 我希望当我收到具有特定主题的电子邮件时 Outlook 开始运行脚本 但是 当收到电子邮件时 Outlook 立即开始运行代码以获取上一封电子邮件 这可能是因为电子邮件刚刚收到且尚未移动到特定文
  • Android:将额外内容从一个活动传递到另一活动

    我有一个填充到活动 Main java 的 JSON 文件 此活动显示了来自我的 JSON 条目上的 URL 的 3 个随机图像 我想要做的是 我的 JSON 上有 13 个不同的条目 每当我单击显示的随机图片时 它都会转到另一个活动 Pr
  • keyup 绑定在 Firefox 中不起作用

    你可以在这里看到我的项目 http www inluxphoto com custom jsgallery index php http www inluxphoto com custom jsgallery index php 我试图让左
  • 正则表达式模式“pL”有什么作用? [复制]

    这个问题在这里已经有答案了 有一个常见的正则表达式用于 slugify url pL d u但什么是 pL在第一个preg replace mean 这里有些例子 如何在 slugify 函数中将 替换为 https stackoverfl
  • 通过 Spring Config 将“硬编码”构造函数 Arg Class 传递给 bean

    我有一个正在注入到服务中的通用类型 由于 Java 中泛型的实现方式 我需要一个构造函数 arg 或属性设置器 来保存泛型类型参数的类信息 我的问题是 我可以通过属性注入或指定构造函数参数 用 spring 传入 Class 的实例吗 我确
  • 以编程方式更新 Excel 文档

    首先 我是一家软件开发公司自动化团队的实习学生 因此我帮助在日常构建中开发自动化测试程序 我的直线经理制作了一份 Excel 文档 将用于展示我们测试环境的结果 我们的测试在 hyper V 服务器上的虚拟 PC 上运行 我希望能够使用每个
  • MongoDB批量运算符,如果不存在则插入

    我正在使用 MongoDB 批量操作来插入文档 我想做的是插入 仅当未找到文档时 如果找到文档我不想更新 即 upsert 有什么想法如何做到这一点 然而 即使在这种情况下 var obj item test bulk find item
  • 单个 PDO 查询意外达到 PHP 内存限制?

    我有一个非常简单的查询 如下所示 result pdo gt query SELECT FROM my table foreach result as r do some stuff 但是当我运行这个时 我收到以下错误 致命错误 第 15
  • 如何用Javascript让Javascript运行在页面的最后一个进程

    我遇到了一个麻烦 当页面加载时 我的 Javascript 会运行 并且 JS 日历会在我的 JS 之后加载 因此 我的 JS 不会影响 JS 日历 1 页面加载 2 我的JS运行 3 这里放一些东西 其他JS 4 JS日历启动 我在这里想
  • 将自定义验证规则添加到 Sonata User Bundle

    我已经根据文档安装了 SonataUserBundle 一切正常 除了我无法添加自定义验证规则 我的理解是 新规则应该添加到新的验证组中 然后更新 config yml 以告诉 SonataUserBundle 或 FosUserBundl
  • android中如何保持会话?

    谁能告诉我如何维护用户登录的会话 例如 当用户登录应用程序时 除非用户注销或卸载类似于 Android 中的 gmail 的应用程序 否则他们必须登录 为您开设一堂课SharedPreferences public class Sessio
  • 不区分大小写的令牌匹配

    是否可以将语法设置为不区分大小写匹配 例如一条规则 checkName CHECK Word 会匹配check name也CHECK name 的创造者PEGKit https github com itod pegkit here 当前执