java - Java 中的标点符号正则表达式

标签 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");
    }


}

结果不匹配。
有什么不匹配的地方吗?

谢谢
磁共振成像

最佳答案

您正在匹配两个字符,而不是一个。使用(负)前瞻应该可以解决任务:

(?![@',&])\\p{Punct}

关于java - Java 中的标点符号正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61649157/

相关文章:

java - 配置 IntelliJ getter 和 setter 代码生成

正则表达式匹配字符串中的 2 个或多个数字

java - 将文本拆分为文本末尾有 "spaces"的段落?

ubuntu - 如何使用 oracle jdk 而不是 openjdk 在 linux mint 或 ubuntu 上安装 Jenkins?

Java:使用正则表达式提取字符串中的不同数量的值

字符串的正则表达式包含?

ruby - 如何使用像字符串模板这样的正则表达式进行替换?

java - 处理 View(State)PagerAdapter 内 Fragment 内 Fragment 的屏幕旋转

java - 传递 TimeUnits 并转换为毫秒

java - 如何为日期变量定义正确的日期