如何在perl中的"_"之前删除所有字符?所以如果我有一个字符串是"124312412_hithere",它会将字符串替换为"hithere".我想有一个非常简单的方法来使用正则表达式,但我仍然是新的处理,所以我需要帮助.
删除所有字符,包括" _":
s/^[^_]*_//;
Run Code Online (Sandbox Code Playgroud)
删除" _" 之前的所有字符:
s/^[^_]*(?=_)//;
Run Code Online (Sandbox Code Playgroud)
删除" _" 之前的所有字符(假设存在" _"):
s/^[^_]*//;
Run Code Online (Sandbox Code Playgroud)
这比它需要的要冗长一些,但对于您了解正在发生的事情可能更有价值:
my $astring = "124312412_hithere";
my $find = "^[^_]*_";
my $replace = "_";
$astring =~ s/$find/$replace/;
print $astring;
Run Code Online (Sandbox Code Playgroud)
此外,您的问题中有一些相互矛盾的要求。如果您只是想要hithere(没有前导_),则将其更改为:
$astring =~ s/$find//;
Run Code Online (Sandbox Code Playgroud)