2013-05-05 3 views
2

До сих пор я использую эти две замены перед печатью «$ string» на терминал.Замена: " p {Cntrl}" - " P {Print}"

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

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

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

ответ

3

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

Смежные вопросы