问题标签 [regexp-grammars]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - 我如何最好地使用 Perl 的 Regexp::Grammars 进行平衡引用?
使用 Damian Conway 的Regexp::Grammars,我尝试匹配不同的平衡引用('foo'
, "foo"
,但不是'foo"
)机制——例如括号、引号、双引号和双美元。这是我目前正在使用的代码。
这通常可以正常工作,并允许我说类似的话:
我的问题是如何改革输出,以排除pair
令牌的针符号?
在这里,显然不希望pair
在报价和literal
价值之间存在任何关系。有没有更好的方法来匹配'foo'
, "foo"
, 和$$foo$$
, 有时可能( foo )
不需要每次都创建一个不必要的pair
令牌?我可以预处理出该令牌或将其折叠到上面吗?或者,编写一个完全不需要它的更好的构造?
perl - 使用 perl 的 Regexp::Grammars,我如何根据 $MATCH 进行捕获?
我有一个像这样的令牌:
我想要发生的是delim2
捕获并设置为delim
. 当我运行它时,delim2
已设置,但捕获从未完成。我认为这是我推理中的一个错误:我正在尝试链接这种形式:
和这种形式:(?{ MATCH{delim} })
变成这样的东西
但这似乎根本不成立。我可以验证我的原始令牌作品<delim2=((?{ die $MATCH{delim} }))>
将随着价值而消失,并且,如果我对其进行硬编码,我会得到正确的捕获并且一切正常<delim2=(')>
吗?那么,我如何在拥有动态模式的同时实现理智的结果呢?
context-free-grammar - 没有多余括号的算术表达式的明确文法
我正在寻找一种没有多余括号的算术表达式的明确语法。例如,括号在 中是多余的id+(id*id)
,但在 中不是(id+id)*id
。
perl - 如何在 %/ 中保存匹配的订单?
考虑以下规则
以下输入的输出 ( %/
) 将相同
这是因为第二个附加到名为“token1”的列表中的第一个,但没有提示与其他令牌匹配的顺序。
知道如何将匹配的订单保存到%/
吗?
ps 我在用这个 %/ 魔法变量编译我的脚本时遇到问题。它总是在使用%/
. 我假设编译器认为它是正则表达式的开始而不终止 /... 如果我正确使用它,请告诉我。
regex - 只有一个插入符号的字符类有什么作用?
在尝试回答找到特定字符时将文本写入新行的问题时,我使用了Regexp::Grammars。它一直让我感兴趣,最后我有理由学习。我注意到作者的描述部分有一个 LaTeX 解析器(我是一个狂热的 LaTeX 用户,所以这让我很感兴趣)但它有一个奇怪的结构在这里看到:
[^]
角色类完成了什么?
perl - 我应该使用 Parse::RecDescent 还是 Regexp::Grammars 从文档中提取表格?
我有很多希望用 perl 解析的大型纯文本文档。每个文档中主要包含英文段落,每个文档中都有几个纯文本标记的表格。
我创建了一个语法来描述表结构,但不确定是否最好使用 Parse::RecDescent 或 Regexp::Grammars 来提取表。
我最初倾向于 Parse::RecDescent,但我不确定在语法中你将如何处理我想忽略的 90% 的文档文本,以便找到我想要提取的几个表隐藏在每个表中文档。
也许我需要 Regexp::Grammars 以便我可以通过文档“拉”我的表达式,直到找到匹配项?
谢谢
regex - 如何使用 Regexp::Grammars 匹配多行模式?
我是 Regexp::Grammars 的新手,在匹配多行模式时遇到了麻烦。我有这个输入:
这个语法:
我只匹配该部分的第一行,但我想将所有文本捕获到空行或输入结尾。谁能看到我做错了什么?
.net - .NET 中是否有类似 perl 的 Regexp::Grammars 或标记的子模式?
我真的很喜欢 perl 的Regexp::Grammars模块。.NET 有类似的东西吗?
我真的很想在 C# 中以正则表达式样式的方式使用递归下降解析器(例如,通过大型文档搜索匹配的模式),并且能够递归地表达该模式。
更新在阅读了 brian d foy 的这个小宝石后,我发现 perl 5.10 支持使用 (?&NAME) 标记的子模式。PCRE现在有一个Nuget 包,并且 PCRE 支持命名/标记的子模式。
regex - 加载 Regexp::Grammars 后使用“普通”正则表达式
我正在尝试在应用程序中使用Regexp::Grammars,但它破坏了许多其他正则表达式。例如,下面的代码:
说明我的问题。我不确定如何处理这个问题,除了反复加载和卸载模块,我什至不确定在我明确卸载模块后是否可以使用扩展的正则表达式no
。如何在仍然获得 Regexp::Grammars 的强大功能的同时允许正常的正则表达式?
perl - 使用 Regexp::Grammars 从文件中解析标签
我正在尝试使用 Perl 和Regexp::Grammars
CPAN 模块从程序中的注释中捕获免费标签。
但是 YAML 输出显示我只捕获了最后一个标签:
如何匹配输入数据中的所有标签?
而且...如何在不打开嘈杂的上下文字符串(删除nocontext:
指令)的情况下获得匹配的标签字符串,以便最终结果更具可读性,即: