我想从字符串中删除日期标识符和*。
$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