I think the set manipulation operations used in the approach of Re: Exception from a character class were only introduced with Perl version 5.16.
The following approach uses only 'old-style' character classes. It depends on a kind of double-negation to match all characters that are not non-digits and also not specific digits. (\P{Whatever} is the inverse class of \p{Whatever} – note P versus p.) Of course, adapt this to your punctuation application.
>perl -wMstrict -le "my $s = 'abc 123 def 45678 g 90 h'; print qq{'$s'}; ;; $s =~ s{ [^\P{PosixDigit}257] }{-}xmsg; print qq{'$s'}; " 'abc 123 def 45678 g 90 h' 'abc -2- def -5-7- g -- h'
In reply to Re: Exception from a character class
by AnomalousMonk
in thread Exception from a character class
by pirkil
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |