在一个包含很多东西(文本,特殊字符,表情符号)的php字符串中,我想保留单词,数字和任何(所有)表情符号…*注意:单词和语言...中文、俄文、英文……
我想删除像# @ - + = / \ | !@#$%?&*(){}[]~
\°|¬~<>`这样的东西
我试过了
$string = 'ten=n%7B%7Dt 96 אתה это 的 ten(a) ten[a] / | \ ten+a ten?allo=olla a,s a.l *f aa*d rr+rr aa-ss as;ss df:aa a's b"s 3@3 a$s a%a a&d ~xzdsad xzd°sad aa\dd hh|ss rr`jj klo <big>< big> aaa¬dfs';
echo preg_replace('/[^\w*(x{1F600}-\x{1F999})]+/u','',rawurldecode($string));
我得到了单词,(一些)表情符号和一些字符,比如*°~ {}大多数表情符号都可以,但也有一些给了我(方框)
·表情符号的范围类似于unicode U+1F600,但有时带有字母U+1F60D ...
我如何改进preg_replace
来纠正这个问题?
发布于 2018-09-04 07:36:01
在深入挖掘之后,我改变了我的策略,只删除不需要的东西。
给了我更多的控制权。
preg_replace('/[;\-\\\+:<>°~\/\|!?%$`¬#*()\[\]]/umX','',rawurldecode($string))
https://stackoverflow.com/questions/51851700
复制相似问题