UTF-8语言的正则表达式

时间:2011-01-13 10:12:56

标签: java regex

我的应用程序还支持旁遮普语(\ u0A00- \ u0A7F) 我试过以下代码

Pattern classPattern = Pattern.compile("\u0A00-\u0A7F ");
    Matcher classMatcher = classPattern.matcher("ਭਾਸ਼ਾ ਸੰਦ");
            if (classMatcher.find()) {
              System.out.println("yes");
            }else{
                System.out.println("no");
            }

虽然我在matcher()中提供了旁遮普字符,但我得到了“不”作为输出

任何想法为什么?

3 个答案:

答案 0 :(得分:6)

该模式应该是"[\u0A00-\u0A7F ]"吗?它看起来像你试图按特定顺序匹配四个字符,但给匹配器六个字符作为输入。

答案 1 :(得分:3)

[\u0A00-\u0A7F ]*

如果没有星号,您将只匹配一个字符。您可以将*替换为+,然后将不接受空字符串。

看看Pattern class JavaDocs。了解正则表达式非常有用。

答案 2 :(得分:1)

因为“asdsa”不是旁遮普[你给的模式会寻找pubjabi字符,dn abc不是]