java - 如何在 Java 中匹配 unicode 字符

标签 java regex unicode

我正在尝试匹配 Java 中的 unicode 字符。

输入字符串:informa

要匹配的字符串:信息

到目前为止我已经试过了:

Pattern p= Pattern.compile("informa[\u0000-\uffff].*", (Pattern.UNICODE_CASE|Pattern.CANON_EQ|Pattern.CASE_INSENSITIVE));
    String s = "informátion";
    Matcher m = p.matcher(s);
    if(m.matches()){
        System.out.println("Match!");
    }else{
        System.out.println("No match");
    }

结果显示为“不匹配”。有什么想法吗?

最佳答案

术语“Unicode 字符”不够具体。它将匹配 Unicode 范围内的 每个 字符,因此也匹配“普通”字符。然而,当一个实际上 表示“不在 printable ASCII range 中的字符”时,这个术语经常被使用。

在正则表达式中是 [^\x20-\x7E]

boolean containsNonPrintableASCIIChars = string.matches(".*[^\\x20-\\x7E].*");

根据您想如何处理这些信息,这里有一些有用的后续答案:

关于java - 如何在 Java 中匹配 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3103344/

相关文章:

java - 如何从main调用java中的方法?

java - 如何可靠地写入字节数组

java - 在 Java 中使用 .substring 操作字符串

html - 为什么这些日文字符有不同的最高值?

java - 为什么我们需要 Lollipop 的第四个构造函数?

java - 如何删除任何非字母数字字符?

javascript - 字符串中允许有空格,但不能在第一个或最后一个位置

Ruby 的字符串 : Escape and unescape a custom character

Python:从解析的查询返回的字符串的 Unicode 编码 (MeCab)

MYSQL - 在 TEXT 列中存储 unicode 字符(表情符号)