我目前遇到问题,我不知道如何在忽略表情符号的同时使正则表达式匹配特殊字符。
例如,我要匹配此字符串中不是表情符号的特殊字符:❤️???????❤️
当前作为我的正则表达式
[^\x00-\x7F]+
当前输出:❤️???????❤️
想要的输出:???????
我将如何解决此问题?
答案 0 :(得分:0)
也许,此表达式可能有效:
$re = '/[\x{1f300}-\x{1f5ff}\x{1f900}-\x{1f9ff}\x{1f600}-\x{1f64f}\x{1f680}-\x{1f6ff}\x{2600}-\x{26ff}\x{2700}-\x{27bf}\x{1f1e6}-\x{1f1ff}\x{1f191}-\x{1f251}\x{1f004}\x{1f0cf}\x{1f170}-\x{1f171}\x{1f17e}-\x{1f17f}\x{1f18e}\x{3030}\x{2b50}\x{2b55}\x{2934}-\x{2935}\x{2b05}-\x{2b07}\x{2b1b}-\x{2b1c}\x{3297}\x{3299}\x{303d}\x{00a9}\x{00ae}\x{2122}\x{23f3}\x{24c2}\x{23e9}-\x{23ef}\x{25b6}\x{23f8}-\x{23fa}]/u';
$str = '❤️???????❤️';
$subst = '';
echo preg_replace($re, $subst, $str);
???????️
如果要浏览/简化/修改该表达式,请在this demo的右上角进行解释。
答案 1 :(得分:0)
答案 2 :(得分:0)
我认为您的帖子标题与正文不符。
表情符号和AlphaNum字符之间几乎没有重叠。
有几个键帽表情符号,但是由于它们的顺序超出了
前几位不与字母数字重叠,仅需放置
在alphanum类前面的负面展望。
'~(?![0-9]\x{FE0F}\x{20E3}|\x{2139})[\pL\pN]+~'