分裂后存储令牌

Nis*_*ssa 3 perl split token

我有以下Perl语句,它通过分隔符|,\或/分割字符串

@example = split(/[\|\\\/]/,$i);
Run Code Online (Sandbox Code Playgroud)

拆分后如何存储令牌?

例如输入:

约翰|玛丽/马修

我得到的是:

(约翰,玛丽,马修)

我想要的是:

(约翰,|,玛丽,/,马修)

Mil*_*ler 10

将捕获组放在正则表达式中以保存分隔符:

my $str = 'John|Mary/Matthew';

my @example = split /([\|\\\/])/, $str;

use Data::Dump;
dd @example;
Run Code Online (Sandbox Code Playgroud)

输出:

("John", "|", "Mary", "/", "Matthew")
Run Code Online (Sandbox Code Playgroud)

这在以下段落中有记录:http://perldoc.perl.org/functions/split.html

  • 这称为"分离器保留模式" (3认同)