Подстановка: "\p{Cntrl}" - "\P{Print}"

До сих пор я использую эти две замены, прежде чем печатать "$string" на терминал.

$string =~ s/\p{Space}/ /g;
$string =~ s/\p{Cntrl}//g;

Есть ли что-то, что я должен учитывать, когда я заменяю первые две замены на следующие две?

$string =~ s/\p{Space}/ /g;
$string =~ s/\P{Print}//g;

1 ответ

Решение

Смотрите этот вопрос. Есть две кодовые точки, которые не являются ни управляющими, ни печатными символами: U+2028 LINE SEPARATOR и U+2029 PARAGRAPH SEPARATOR, Но оба они являются пробелами, поэтому ваши две замены должны быть эквивалентны.

Другие вопросы по тегам