当前位置: 首页 > 知识库问答 >
问题:

Perl 6中嵌套正则表达式的范围

龚凌
2023-03-14

是否可以按任意顺序定义嵌套的正则表达式?

以下程序按预期工作:

my regex letter { <[a b]> }
my regex word { <letter> + }

my $string = 'abab';
$string ~~ &word;
put $/; # abab

如果交换前两行,编译器将产生错误。

有没有办法覆盖这个限制(不使用语法)?

共有1个答案

端木安国
2023-03-14

您可以将regex放在预先声明但稍后设置的变量中:

my $letter;
my regex word { <$letter> + }
$letter = regex { <[a b]> }

my $string = 'abab';
$string ~~ &word;
put $/; # abab
 类似资料:
  • Perl6正则表达式匹配连接 它为False,因为连词中的“23”与$a中的“23”子字符串匹配,但此子字符串与连词中的“ef”不匹配。这有点违反直觉,因为它更容易解释$a ~~ m/23 如果我有n个正则表达式,我想看看是否所有这些n个正则表达式都匹配相同的整个字符串,而不是匹配整个字符串的相同子字符串部分,那么编写perl6表达式的最佳方法是什么? 在例子中,我真的想做 如果正则表达式的数量很

  • 问题内容: 我一直试图在Java中编写一个正则表达式以删除下面括号中的所有内容,同时保留其他所有内容。 注意,括号可以嵌套,这就是为什么我的模式失败的原因 。有人能帮我吗?下面我试过了: 但这打印: d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 d6 5. Nf3 OO 6. Be2 e5 7. dxe5 dxe5 8. Qxd8 Rxd8 9. Bg5 Nbd7 10. OO

  • 问题内容: 我正在实现某种解析器,我需要定位并反序列化 嵌入到其他半结构化数据中的 json对象。我用了regexp: 定位物体 但不适用于嵌套对象,因为表达式仅匹配第一个找到的右花括号。对于 它匹配 因此字符串对于反序列化变得无效。我知道有一个贪婪的业务正在考虑中,但是我对正则表达式并不熟悉。您能否帮助我扩展表达式以使用所有可用的大括号。 更新: 明确地说,这是尝试从具有嵌入式JSON的半结构化

  • 昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?

  • 问题内容: 我有一个格式为String的String ,其中包含任意数量的元素。我想将它拆分的逗号分隔的坐标,也就是检索,和。 我可以用Java正则表达式来做吗?我是一个完整的菜鸟,但希望Java regex足够强大。如果不是,您是否可以建议替代方法? 问题答案: 您可以为此使用。 在 正回顾后发意味着它必须在前面加。在 正向前查找意味着它必须由suceeded 。该意味着它必须在劈裂后的任何空间

  • 我想将带有嵌套大括号的原始字符串解析为多维数组。下面我添加了一些有效的示例代码。但主要问题是,我的正则表达式只捕获第一个匹配的组,而忽略了另一个发生。 非常感谢您的帮助。 代码: 原始字符串(data.txt): 代码输出: 但例外输出: