Java中的标点正则表达式

MRi*_*izq 13 java regex

首先,我阅读文档如下

http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

我希望找到任何标点字符,除了@',但我不太明白.

这是 :

public static void main( String[] args )
{       
     // String to be scanned to find the pattern.
     String value = "#`~!#$%^";
     String pattern = "\\p{Punct}[^@',&]";

    // Create a Pattern object
    Pattern r = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);

    // Now create matcher object.
    Matcher m = r.matcher(value);
    if (m.find()) {
       System.out.println("Found value: " + m.groupCount());
    } else {
       System.out.println("NO MATCH");
    }


}
Run Code Online (Sandbox Code Playgroud)

结果没有比赛.
有什么不匹配的吗?

谢谢
MRizq

Luc*_*ero 30

你匹配两个字符,而不是一个.使用(负面)前瞻应该解决任务:

(?![@',&])\\p{Punct}
Run Code Online (Sandbox Code Playgroud)