如何从字符串中删除日期标识符和特殊字符



我想从字符串中删除日期标识符和*。

$string = "*102015 Supplied air hood";
$output = "Supplied air hood";

我用过

$string =~ s/[#%&""*+]//g;
$string =~ s/^s+//;

我应该用什么来获得string value="提供的空气罩";

提前感谢

要删除字符串中直到第一个空格的所有内容,可以编写

$str =~ s/^S*s+//;

您的模式不包含数字。它会删除*,但不会删除其他内容。如果你想删除一个后面跟着六位数字的*和字符串开头的空白,可以这样做:

$string =~ s/^*d{6} //;

但是,如果该字符串总是包含这样的模式,则不需要正则表达式替换。您可以简单地获取一个子字符串。

my $output = substr $string, 8;

这将从第9个字符开始分配$string的内容

下面的脚本执行您想要的操作,假设日期总是出现在行的开头,并且后面正好有一个空格。

use strict;
use warnings;

while (<DATA>)
{
    # skip one or more characters not a space
    # then skip exactly one space
    # then capture all remaining characters
    # and assign them to $s
    my ($s) = $_ =~ /[^ ]+ (.*)/;
    print $s, "n";
}
__DATA__
*110115 first date
*110115 second date
*110315 third date

输出为:

first date
second date
third date

相关内容

  • 没有找到相关文章

最新更新