0
非英文字符刪除線鑑於這一數據與使用Perl
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
第二行不應該在那裏。
這是處理事情的令人驚訝的低效的方式!你只是試圖從上面的例子中分離歌曲名稱? – fugu
具體是你想達到什麼? – stevemarvell
什麼是「第二線」? – Kenosis