首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java正则表达式是否支持Unicode?

Java正则表达式是否支持Unicode?
EN

Stack Overflow用户
提问于 2012-06-05 16:42:49
回答 4查看 78.1K关注 0票数 85

为了匹配A到Z,我们将使用regex:

A-Za-z

如何允许正则表达式匹配用户输入的utf8字符?例如,像环保部这样的中文单词

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-05 17:21:09

您要查找的是Unicode属性。

例如,\p{L}是来自任何语言的任何类型的字母

因此,匹配这样一个中文单词的正则表达式可能如下所示

代码语言:javascript
复制
\p{L}+

有许多这样的属性,有关详细信息,请参阅regular-expressions.info

另一种选择是使用修饰符

Pattern.UNICODE_CHARACTER_CLASS

在Java7中,有一个启用预定义字符类see my answer here for some more details and links的Unicode版本的新属性Pattern.UNICODE_CHARACTER_CLASS

你可以这样做

代码语言:javascript
复制
Pattern p = Pattern.compile("\\w+", Pattern.UNICODE_CHARACTER_CLASS);

\w将匹配来自任何语言的所有字母和数字(当然还有一些组合字符的单词,如_)。

票数 128
EN

Stack Overflow用户

发布于 2015-07-07 18:04:13

为了解决NLS支持并避免接受英文特殊字符,我们可以使用以下模式...

a-zA-Z0-9 \u0080-\u9fff*+

对于UTF代码点参考:http://www.utf8-chartable.de/unicode-utf8-table.pl

代码片段:

代码语言:javascript
复制
    String vowels = "అఆఇఈఉఊఋఌఎఏఐఒఓఔౠౡ";
    String consonants = "కఖగఘఙచఛజఝఞటఠడఢణతథదధనపఫబభమయరఱలళవశషసహ";
    String signsAndPunctuations = "కఁకంకఃకాకికీకుకూకృకౄకెకేకైకొకోకౌక్కౕకౖ";
    String symbolsAndNumerals = "౦౧౨౩౪౫౬౭౮౯";
    String engChinesStr = "ABC導字會";


    Pattern ALPHANUMERIC_AND_SPACE_PATTERN_TELUGU = Pattern
            .compile("[a-zA-Z0-9 \\u0c00-\\u0c7f]*+");
    System.out.println(ALPHANUMERIC_AND_SPACE_PATTERN_TELUGU.matcher(vowels)
            .matches());


    Pattern ALPHANUMERIC_AND_SPACE_PATTERN_CHINESE = Pattern
            .compile("[a-zA-Z0-9 \\u4e00-\\u9fff]*+");

    Pattern ENGLISH_ALPHANUMERIC_SPACE_AND_NLS_PATTERN = Pattern
            .compile("[a-zA-Z0-9 \\u0080-\\u9fff]*+");

    System.out.println(ENGLISH_ALPHANUMERIC_SPACE_AND_NLS_PATTERN.matcher(engChinesStr)
            .matches());
票数 13
EN

Stack Overflow用户

发布于 2012-06-05 16:50:25

要匹配单个字符,您可以简单地将它们作为文字或通过\u03FB语法包含在a字符类中。

显然,您通常无法列出表意语言中所有允许的字符。为了使正则表达式根据字符的类型或代码块处理unicode字符,支持使用here定义的各种其他转义。请看"Unicode支持“一节,特别是对Character类和Unicode标准本身的引用。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10894122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档