Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除所有不可打印字符+;来自字符串的表情符号?_Java_Regex - Fatal编程技术网

Java 如何删除所有不可打印字符+;来自字符串的表情符号?

Java 如何删除所有不可打印字符+;来自字符串的表情符号?,java,regex,Java,Regex,我想从我的字符串中删除所有不可打印的字符+所有表情符号 我试过了,但它对表情符号不起作用: public static String removeAllNoAsciiChars(String str) { if (!TextUtils.isEmpty(str)) { str = str.replaceAll("\\p{C}", ""); } return str; } 示例: “L'alphabet est gén

我想从我的字符串中删除所有不可打印的字符+所有表情符号

我试过了,但它对表情符号不起作用:

public static String removeAllNoAsciiChars(String str) {
        if (!TextUtils.isEmpty(str)) {
            str = str.replaceAll("\\p{C}", "");
        }
        return str;
    }
示例:


“L'alphabet est génial这个
\\p{C}
正则表达式负责所有不可打印的字符。请注意,这包括制表符和换行符

至于表情符号,这有点复杂。您可以只匹配Unicode中较新的表情符号,即(U+1F600到U+1F64F),但这并不是所有表情符号,例如(U+2764)不在该范围内


如果查看这些表情符号,例如,
\\p{C}
正则表达式会处理所有不可打印的字符。请注意,这包括制表符和换行符

至于表情符号,这有点复杂。您可以只匹配Unicode中较新的表情符号,即(U+1F600到U+1F64F),但这并不是所有表情符号,例如(U+2764)不在该范围内


如果你看那些表情符号,例如,最好指定你想要保留什么。顺便说一句,这个方法的名字很糟糕,因为你保留的不仅仅是ASCII。表情部分:你做了彻底的搜索吗?这是第二次点击。(不是我的dv)也许最好指定要保留的内容。顺便说一句,该方法的名称很糟糕,因为您保留的不仅仅是ASCII。表情符号部分:您进行了彻底的搜索吗?这是第二次命中。(不是我的dv)@YCF\L
\s
regex与
[\t\n\x0B\f\r]
,但只有空格仍然存在,因为
\p{C}删除了5个控制字符
匹配。我甚至在第一段中警告过这一点。由于
\s
被简化为与空间相同,我将恢复您的更新。哎呀,我的坏,对不起,很好的回答:)@YCF\L
\s
正则表达式与
[\t\n\x0B\f\r]相同
,但只有空格仍然存在,因为5个控制字符被
\p{C}
匹配项删除。我甚至在第一段中警告过这一点。由于
\s
随后被缩减为与空格相同,我正在恢复您的更新。哎呀,我的错,对不起,回答很好:)