在字符匹配之前删除数据

时间:2014-09-24 13:06:44

标签: regex perl sed

如何在使用Perl或sed的字符串中删除" /"之前的字符,包括" /"?

例如,这个:

ad9a91/FFFF0000

会变成

FFFF0000

4 个答案:

答案 0 :(得分:2)

Sed解决方案

sed 's|[^/]*/||' file

将删除所有内容,包括第一个/

sed 's|.*/||' file

将删除所有内容,包括最后/

我添加了两个,因为问题并不完全清楚每次字符串的格式是什么。

<强> awk中

awk -F/ '{$0=$NF}1' file

这会将整行替换为最后一行/

之后的内容

答案 1 :(得分:1)

您可以使用替换,

my $str = "ad9a91/FFFF0000";
$str =~ s|^.+?/||;

或正则表达式捕获,

$str = $1 if $str =~ m|/(.+)|s;

答案 2 :(得分:0)

使用替换:

my $string = "ad9a91/FFFF0000";
$string =~ s|\.+/||;

答案 3 :(得分:0)

my $string = qq(sjdflksdjfsdj ad9a91/FFFF0000 slodjfsdf s);
$string =~ s{\b(\s).*?\b/}{$1}ig;
print $string;exit;

你也可以尝试使用任何空格或任何标签进行拆分。