{}
括号,以便从文件中提取特定的文本片段。目前我的代码如下:my @matches = $str =~ /\{(?:\{.*\}|[^\{])*\}|\w+/sg;
foreach (@matches) {
print "$_\n";
}
有时它按预期工作。例如,如果$str = "abc {{xyz} abc} {xyz}"
,我会得到:
abc {{xyz} abc} {xyz}
如预期的那样。但对于其他输入字符串,它不像预期的那样运行。例如,如果$str = "{abc} {{xyz}} abc"
,输出是:
{abc} {{xyz}} abc
这不是我期望的结果。由于每个括号都是平衡的,我希望{abc}
和{{xyz}}
在单独的行上。我的正则表达式是否存在问题?如果是,我该如何解决?