Как вытащить каждую запятую, дефис, подчеркивание, пробел и объединить оставшиеся слова без пробелов? - PullRequest
2 голосов
/ 05 мая 2011

Полагаю, это было бы довольно длинное регулярное выражение, но есть ли способ извлечь символы подчеркивания, пробелы, запятые и дефисы из строки, а затем соединить слова вместе в perl?

Пример:

_Car - Eat, Tree

Становится:

CarEatTree

Ответы [ 6 ]

5 голосов
/ 05 мая 2011

Вы можете использовать простую замену:

$string =~ s/[_ ,-]//g;
4 голосов
/ 05 мая 2011

Это также можно сделать без регулярных выражений: Транслитерация: tr ///

use warnings;
use strict;

my $s = '_Car - Eat, Tree';
$s =~ tr/_ ,\-//d;
print "$s\n";

__END__

CarEatTree
2 голосов
/ 05 мая 2011

Если вы хотите убрать любую пунктуацию, вы всегда можете использовать s/[[:punct:]]//g

1 голос
/ 06 мая 2011

Использование оператора транслитерации с (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
1 голос
/ 05 мая 2011

поиск [_, -] и замена на пустую строку ""

$str = "_Car - Eat, Tree";
$str =~ s/[_, -]//g;
1 голос
/ 05 мая 2011
my $str = '_Car - Eat, Tree';
$str =~ s/[\_\-\,\s]*//g;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...