代码之家  ›  专栏  ›  技术社区  ›  Steve B.

JavaReX支持非ASCII值?

  •  2
  • Steve B.  · 技术社区  · 15 年前

    我们有一个当前的方法,它清除的字符不是字母或空格,只是

    String clean(String input)
    {
       return input==null?"":input.replaceAll("[^a-zA-Z ]","");
    }
    

    它确实应该被固定以支持非英语字符(例如,,……)不幸的是,JavaReEX类(例如 “w”-非文字字符, “\p alpha”-仅限US-ASCII.”似乎不支持这一点。有没有用Java正则表达式来完成这一操作的方法,而不是用手动循环来测试每个字符呢?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Charlie Martin    15 年前

    Java 6模式处理Unicode,参见 this doc .

    Unicode转义序列,例如 \U2014在Java中的源代码是 按照本文件第3.3条的规定处理 Java语言规范。这样 还实现了转义序列 直接通过正则表达式 解析器,以便unicode转义可以 在从中读取的表达式中使用 文件或从键盘。因此 字符串“\u2014”和“\\u2014”,同时 不相等,编译成相同的 与字符匹配的模式 十六进制值为0x2014。

    Unicode块和类别是 用\p和\p构造编写 在Perl中。\ P道具匹配 输入具有属性prop,而 \ p prop如果输入不匹配 拥有那个属性。块是 用前缀in指定,如in InMongolian。类别可能是 用可选前缀指定的是: P L和\P ISL都表示 Unicode字母的类别。阻碍 和类别都可以在内部使用 在角色类之外。