使用Perl split函数,但保留某些分隔符

ind*_*guy 4 regex perl split

我有一个字符串,我需要拆分某个角色.但是,当它的两侧是数字时,我只需要在其中一个字符上拆分字符串.字符串中的其他位置存在相同的字符,但两侧会有一个字母 - 至少在一侧.我试图使用split函数如下(使用"x"作为问题的字符):

my @array = split /\dx\d/, $string;
Run Code Online (Sandbox Code Playgroud)

但是,此功能会删除"x"和侧翼数字.如果可能,我想保留数字.有任何想法吗?

Mar*_*tos 13

使用零宽度断言:

my @array = split /(?<=\d)x(?=\d)/, $string;
Run Code Online (Sandbox Code Playgroud)

这将匹配x数字之前和之后的数字,但不会消耗数字本身.