正则表达式过滤带有 unicode 字符和 java 表情符号的字符串



我正在开发一个Spring启动聊天应用程序。如何创建正则表达式以实现以下内容,

  • 删除特殊字符
  • 删除换行符等。
  • 接受 Unicode 字符
  • 接受表情符号

进一步 数据库表CHARACTER SETutf8mb4COLLATEutf8mb4_bin

  • 删除特殊字符

    s = s.replaceAll("[\p{P}\p{S}]", "")
    
  • 删除换行符等。

    s = s.replaceAll("[\p{C}\p{Zl}\p{Zp}]", "")
    
  • 接受 Unicode 字符
    Java 已经这样做了。

  • 接受表情符号
    表情符号是Unicode字符,所以Java已经这样做了。

总而言之:

s = s.replaceAll("[\p{P}\p{S}\p{C}\p{Zl}\p{Zp}]", "")

有关 Unicode 类别和每个类别中的字符的列表,请参阅 Unicode 字符类别。

使用上述正则表达式,将保留以下类别:L(字母)、M(标记)、N(数字)、Zs(分隔符、空格)。

最新更新