我正在寻找在 Perl 中执行此操作的解决方案。
示例: 如果我的字符串是:
my $content = 'toto /app/blah titi\nhuh/app/ttt wew';
我的模式是:/app/something
我想获得数组中的输出:/app/blah
和/app/ttt
.
(这基本上就是 grep -E -o '\/app\/[a-z]*'
的作用)
我无法让它工作! 我尝试过:
my $content = 'toto /app/blah titi\nhuh/app/ttt wew';
$content =~ m/(\/app\/[a-z]*)/;
print "Group: $1 $2\n";
但这只会打印:/app/blah
(不是/app/ttt
)
无论如何,我不知道如何将结果放入表格中:
my (@table) = @_;
该表不包含任何内容!
谢谢
最佳答案
您想要使用/g
修饰符使正则表达式以列表形式返回所有匹配项:
@table = $content =~ m/(\/app\/[a-z]*)/g;
print "Group: @table\n";
此外,@_
与正则表达式没有任何关系。相反,它是传递给当前子例程的参数列表。
关于regex - Perl 模式匹配,我们打印所有匹配部分,但仅打印匹配部分(而不是其余部分),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10507076/