Полагаю, это было бы довольно длинное регулярное выражение, но есть ли способ извлечь символы подчеркивания, пробелы, запятые и дефисы из строки, а затем соединить слова вместе в perl?
Пример:
_Car - Eat, Tree
Становится:
CarEatTree
Вы можете использовать простую замену:
$string =~ s/[_ ,-]//g;
Это также можно сделать без регулярных выражений: Транслитерация: tr ///
use warnings; use strict; my $s = '_Car - Eat, Tree'; $s =~ tr/_ ,\-//d; print "$s\n"; __END__ CarEatTree
Если вы хотите убрать любую пунктуацию, вы всегда можете использовать s/[[:punct:]]//g
s/[[:punct:]]//g
Использование оператора транслитерации с (d) элетом (c);
#!/usr/bin/perl use strict; use warnings; use 5.012; my $str = '_Car - Eat, Tree'; $str =~ tr/a-zA-Z//cd; print $str; __END__ C:\Old_Data\perlp>perl t6.pl CarEatTree
поиск [_, -] и замена на пустую строку ""
[_, -]
""
$str = "_Car - Eat, Tree"; $str =~ s/[_, -]//g;
my $str = '_Car - Eat, Tree'; $str =~ s/[\_\-\,\s]*//g;