鉴于此数据
TRMMJJH12903CF8B69<SEP>SOKSZAQ12AC9070DC0<SEP>Alexandre Da Costa<SEP>Violin Concerto No.1 in G minor_ Op.26 - III. Allegro energico
TRMMOWW128F1465642<SEP>SOGELZG12A6D4F865F<SEP>Yann Tiersen<SEP>La Valse D'Amélie (Version Orchestre)
我必须清除歌名之前的所有东西,我已经成功地做到了。
然后我必须删除我已成功完成的 , , , 等之后+
的(
所有{
内容[
。
我坚持的部分是,如果这条线有一个像 Yann Tiersen 歌曲这样的非英语字符,那么我必须完全消除它。
我曾尝试查看文档以了解如何使用\w
,\s
但我无法理解如何将其放入代码中并使用它。
这是我的代码:
@songs = map { chomp; (split /<SEP>/)[3] } @data;
for (my $i = 0 ; $i < @songs . length ; $i++) {
$title = @songs[$i];
$title =~ s/feat..*//s;
$title =~ s/\(.*//s;
$title =~ s/\[.*//s;
$title =~ s/\{.*//s;
$title =~ s/\/.*//s;
$title =~ s/\\.*//s;
$title =~ s/\+.*//s;
$title =~ s/\=.*//s;
$title =~ s/\*.*//s;
$title =~ s/\".*//s;
$title =~ s/\:.*//s;
$title =~ s/\-.*//s;
$title =~ s/\'.*//s;
$title =~ s/\_.*//s;
$title =~ s/\?.*//s;
$title =~ s/\..*//s;
$title =~ s/\!.*//s;
$title =~ s/\;.*//s;
$title =~ s/\&.*//s;
$title =~ s/\$.*//s;
$title =~ s/\%.*//s;
$title =~ s/\#.*//s;
$title =~ s/\|.*//s;
$title =~ s/\@.*//s;
$title =~ s/\.*//s;
$title =~ s/\!.*//s;
$title =~ s/\¿.*//s;
$title =~ s/\¡.*//s;
$title !~ s/[^[:ascii:]]//g;
$title = lc($title);
print $title, $i, "\n";
}
输出如下所示:
violin concerto no
la valse d
第二行不应该在那里。