android怎样过滤字符串中的emoji表情

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android怎样过滤字符串中的emoji表情相关的知识,希望对你有一定的参考价值。

 对于字符串处理,首选就是正则表达式去处理,而在android系统中可以自定义InputFilter去过滤需要处理掉的字符串,代码如下

  InputFilter emojiFilter = new InputFilter ( )

  @Override
  public CharSequence filter ( CharSequence source , int start , int end , Spanned dest , int dstart ,

  int dend )

  
   ;
  随后我查阅了 emoji 的wikipedia与 Github ,从中提取出表情的一个大概unicode范围,由于Java可以直接对unicode进行匹配,这样我们可以很省事直接写出Pattern即可,代码如下

  InputFilter emojiFilter = new InputFilter ( )

  Pattern emoji = Pattern . compile (

  "[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]" ,

  Pattern . UNICODE_CASE | Pattern . CASE_INSENSITIVE ) ;

  @Override
  public CharSequence filter ( CharSequence source , int start , int end , Spanned dest , int dstart ,

  int dend )

  Matcher emojiMatcher = emoji . matcher ( source ) ;

  if ( emojiMatcher . find ( ) )

  return "" ;

  
  return null ;

  
   ;
  基本上这样就能过滤掉emoji表情了
参考技术A   解决方案

  对于字符串处理,首选就是正则表达式去处理,而在android系统中可以自定义InputFilter去过滤需要处理掉的字符串,代码如下

  InputFilter emojiFilter = new InputFilter ( )

  @Override
  public CharSequence filter ( CharSequence source , int start , int end , Spanned dest , int dstart ,

  int dend )

  
   ;
  随后我查阅了 emoji 的wikipedia与 Github ,从中提取出表情的一个大概unicode范围,由于Java可以直接对unicode进行匹配,这样我们可以很省事直接写出Pattern即可,代码如下

  InputFilter emojiFilter = new InputFilter ( )

  Pattern emoji = Pattern . compile (

  "[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]" ,

  Pattern . UNICODE_CASE | Pattern . CASE_INSENSITIVE ) ;

  @Override
  public CharSequence filter ( CharSequence source , int start , int end , Spanned dest , int dstart ,

  int dend )

  Matcher emojiMatcher = emoji . matcher ( source ) ;

  if ( emojiMatcher . find ( ) )

  return "" ;

  
  return null ;

  
   ;
  基本上这样就能过滤掉emoji表情了本回答被提问者采纳

python3 清除过滤emoji表情

https://www.cnblogs.com/lizm166/p/9662995.html

 

def filter_emoji(desstr,restr=‘‘):  
    #过滤表情   
    try:  
        co = re.compile(u‘[U00010000-U0010ffff]‘)  
    except re.error:  
        co = re.compile(u‘[uD800-uDBFF][uDC00-uDFFF]‘)  
    return co.sub(restr, desstr)  

以上是关于android怎样过滤字符串中的emoji表情的主要内容,如果未能解决你的问题,请参考以下文章

python 怎么过滤 emoji 表情符号

求php过滤ios的Emoji表情的方法,如果字符串中包含Emoji表情就删除。

python emoji 表情过滤

Python string中删除(过滤)掉emoji表情字符

使用php过滤emoji表情

php过滤表单输入的meoji表情