Как заменить пробел в perl - PullRequest
3 голосов
/ 08 марта 2011
chomp($myString);
$myString =~ s/\///g;

Могу ли я заменить эти два на

$myString =~ s/\s//g;

есть ли разница? Пожалуйста, объясните.

Ответы [ 3 ]

10 голосов
/ 08 марта 2011

Ваш первый код возьмет новую строку после конца $ myString, если она существует, а затем удалит все символы "/".Вторая строка кода удалит все пробельные символы.Есть ли опечатка?

Возможно, вы хотите знать, что вы можете заменить это:

chomp($myString);
$myString =~ s/\s//g;

на это:

$myString =~ s/\s//g;

Если это вопрос, тогда да.Так как символ новой строки считается пробелом, второй пример кода выполняет работу обеих строк выше.

1 голос
/ 08 марта 2011

Из perldoc chomp :

chomp удалите новую строку из конца входной записи, если вы беспокоитесь, что в окончательной записи может отсутствовать новая строка,

В режиме абзаца ($/ = "" ) удаляет все завершающие символы новой строки из строки.Когда в режиме slurp ($/ = undef) или режиме записи фиксированной длины ($/ является ссылкой на целое число или тому подобное, см. Perlvar) chomp () не будет ничего удалять.

вы можете удалить начальные и конечные пробелы из таких строк, как,

$string =~ s{^\s+|\s+$}{}g
0 голосов
/ 08 марта 2011

Chomp избавится от новых строк в конце вашей строки, но не удалит пробелы.Типичная функция обрезки использует следующие две строки подстановки:

$string =~ s/^\s+//;
$string =~ s/\s+$//;

Первая строка удаляет все пробелы в начале вашей строки, а вторая удаляет пробелы после конца строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...