如何计算没有 A-Z、0-9、下划线、破折号和句号的特殊字符


how to count special char without a-z , 0-9 , underscore , dash and full stop?

如何在没有a-z,0-9,下划线,破折号和句号的情况下计算特殊字符?
我尝试了很多次,但没有设法让它工作。

例如:asd -_.

计数 = 1(空格键)

和 : 1234!@#$,,

计数 = 6(对于!@#$,,

strlen(preg_replace('@[a-z0-9_'-'.]@', '', $string));

这将首先删除所有不需要的字符:a-z、0-9 _ 和 . by preg_replace

preg_replace('@[a-z0-9_'-'.]@', '', $string);

然后计算结果字符串的长度