正则表达式过滤表情
Ⅰ android怎样过滤字符串中的emoji表情
对于字符串处理,首选就是正则表达式去处理,而在系统中可以自定义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表情了
Ⅱ 求一个正则表达式过滤特殊字符但是不过滤@下划线之类的
这个的话也可以通过正则限定允许输入的字符来实现
比如说:字母开头6-15位字符就可以写成如下方式
/^[a-zA-Z][a-zA-Z0-9]{5,15}$/
这样也可以达到过滤特殊字符的效果
Ⅲ 正则表达式过滤特殊字符
正则表达式里面你带了逗号,应该这样写
[。~!@#$%\^\+\*&\\\/\?\|:\.<>{}()';="]
有些符号只有少数几个符号需要转义,而且不用打逗号,打了逗号就相当于把逗号也过滤掉了
Ⅳ java正则表达式过滤特殊字符
Stringregexp="[^'"%]*";
Stringstring="abc%";
System.out.println(string.matches(regexp));
Ⅳ 如何用正则表达式 过滤 特定内容
正则表达式:^\d+(\.\d+)?$
你可以用这个正则表达式匹配输入的字符,如果不匹配说明是非法的字母和字符.
Ⅵ php的preg_replace过滤emoji字符,要怎么做
PHP的preg_replace函数是 执行一个正则表达式的搜索和替换其具体用法如下
语法:
preg_replace (正则表达式, 替换成回, 字符串, 最大答替换次数【默认-1,无数次】, 替换次数)
实例:
<?php//把heigth高度属性删除,并添加width="100%"
$str='<div><p>12312321</p><imgsrc="xx.jpg"height="213"/><span>111</span><imgsrc="xz.jpg"/></div>';
$str=preg_replace("/height="[0-9]+?"/","",$str);
$str1=preg_replace("/src="(.+?)"/","src="$1"width="100%"",$str);
print_r($str1);
?>
Ⅶ android中怎么过滤掉系统表情
解决方案
对于字符串处理,首选就是正则表达式去处理,而在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表情了
Ⅷ 正则表达式怎么过滤掉符号
问题解决了,是先替换掉了符号,在正则查找的
Ⅸ 小妹请问过滤特殊符号的正则表达式
把所有的特殊符号罗列出来即可。
//javascript版本
str=str.replace(/[·~!@#$%^&*()-_=+{}[]\|:;'",.<>/?]+/g,'')
Ⅹ 求教高手,想过滤一下内容里面的图片,求一个正则表达式
你可以在这个网站上试试你的表达式是否生效http://tool.oschina.net/regex# ,我用你的这个\<img[^\>]+\> 试了下没问题回,所以你看看是不是代答码上你写的有问题