16

.

.

.

示例:กิิิิิิิิิิิิิิิิิิิิกิิิิิิิิิิิิิิิิิิิิก็ก็กิิิิิิิิิิิิิิิิิิิิก้้ก็็็็็็็็็็็็็็็็็็็็กิิิิิิิิิิิิิิิิิิิิ้้้้้้้้้้้้้้้้้้กิิิิิิิิิิิิิิิิิิิิกิิิิิิิิิิิิิิิิิิิิก้้ก็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ก็ก็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็กิิิิิิิิิิิิิิิิิิิิกิิิิิิิิิิิิิิิิิิิิก้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ก็ก็ก็(或任何“ Zalgo”文本)

我还没有完全想出任何方法来检查这些。我正在制作一种反垃圾邮件,我认为没有必要保留这些邮件,因为它们可能会落后于用户并且通常只是垃圾邮件。

我想做的是

if (getMessage().getRawContent().contains(combined character).delete();

如果有人知道检查组合字符的简单方法,请发布!

如果您对我的要求感到困惑,我可以进一步解释并在需要时显示更多示例。

4

1 回答 1

15

在很多情况下,一个或两个连续的组合字符是完全有效的文本。我会寻找其中四个或更多:

if (getMessage().getRawContent().matches(".*\\p{Mn}{4}.*"))
于 2017-04-18T01:55:51.923 回答