正则表达式从标量变量中删除已知数量的字节

ImD*_*til 1 regex perl

我有一个标量变量,$var其中包含10个字节.删除我使用的那10个字节

$var =~ s/^(.{$numberOfbytes})//;
Run Code Online (Sandbox Code Playgroud)

如果少于10个字节,这可以正常工作.但是我希望一次删除超过4500个字节.我怎样才能做到这一点?

Dan*_*tin 9

不要使用正则表达式; 相反,使用substr:

my $manyBytes = substr($var, 0, 4500, '');
Run Code Online (Sandbox Code Playgroud)

最后一个参数使得4500字节被删除$var.4500字节,而不是在$1,现在$manyBytes.

  • 不,他们不是.`substr`的​​第四个参数用于替换原始字符串中的值. (2认同)