gpt4 book ai didi

java - 如何检测文本是否包含 [FSI]*[PDI]

转载 作者:行者123 更新时间:2023-12-05 04:48:30 25 4
gpt4 key购买 nike

传入通知消息的 Android Studio logcat 显示如下 []message[]

我复制并粘贴到 .txt 文件,它显示 FSImessagePDI

enter image description here

这种字符“FSI”和“PDI”是什么?我如何检测文本何时包含它们?

最佳答案

这些是用于双向文本的特殊 unicode 字符,也是 Explicit Directional Isolate Formatting Characters 组的一部分。它们在您的示例中用于轻松插入方向未知的文本 fragment 。这可以通过将 fragment 包装在 FSI 和 PDI 中来完成。咨询Unicode Bidirectional Algorithm获取更多信息。

要检测它们,我们需要知道它们的 unicode 表示形式:

  • 第一个强分离 (FSI) 由 0x2068 (UTF-16) 表示。
  • 0x2069 (UTF-16) 表示的 Pop Directional Isolate (PDI)。

现在我们可以使用正则表达式 \u2068(.*?)\u2069 来提取包装的内容:

String input = "Hi \u2068Bob\u2069!\nHow is \u2068Alice\u2069?";
System.out.println(input);

Pattern p = Pattern.compile("\u2068(.*?)\u2069");
Matcher m = p.matcher(input);
while (m.find()) {
System.out.println(m.group(1));
}

输出:
output

关于java - 如何检测文本是否包含 [FSI]*[PDI],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68053835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com