当前位置: 首页 > 面试题库 >

Java标点正则表达式

越高峻
2023-03-14
问题内容

首先,我阅读以下文档

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


}

结果是没有匹配。
是否有任何不匹配?

谢谢
MRizq


问题答案:

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

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


 类似资料:
  • 问题内容: 因此,我对 正则表达式 完全 陌生 ,并且正在尝试使用Java 来查找输入字符串中的标点符号。我不知道会提前得到哪种标点符号,只是(1)!,?,。,…都是有效的标点符号,以及(2)“ <”和“>”表示特殊含义,并且不算作标点符号。该程序本身会伪随机地构建短语,我想在它经历随机过程之前先删除句子结尾处的标点符号。 我可以用任何标点符号匹配整个单词,但匹配器只为我提供该单词的索引。换一种说

  • 问题内容: 我正在尝试输入之间的内容,我的模式没有做正确的事,请帮忙。 下面是sudocode: 要求的输出: 之一 二 三 问题答案: 先行使用并在循环中使用,而不是: 看到它在线上工作:ideone 但是最好在这里使用split: 看到它在线上工作:ideone

  • 主要内容:正则表达式支持字符正则表达式(Regular Expression)又称正规表示法、常规表示法,在代码中常简写为 regex、regexp 或 RE,它是计算机科学的一个概念。 正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割、替换等操作,是一种可以用于模式匹配和替换的规范。一个正则表达式就是由普通的字符(如字符 a~z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的

  • 问题内容: 我需要找到与特定正则表达式匹配的所有软件包: 基本上,包的名字应该与启动,并有后话。例如,以下软件包应匹配: 我可以做,但是有很多我不感兴趣的软件包。 是否提供通过正则表达式查找软件包的方法?或者,我应该只是通过管道传递结果来过滤掉无关的包? 此外,可能是一个的“交集” ,并有助于太。 问题答案: alecxe,我相信这是您要寻找的一线客。 如下面评论中铬酸盐所建议的那样,您可以根据需

  • 问题内容: 用java 方法剥离输入的字符串(如MY-CORP \ My.Name)中的MY-CORP \部分的正则表达式是什么,这样我只能得到My.Name部分? 我试过了 但是我 在索引4 ^附近 遇到了 意外的内部错误。 * 问题答案: 您的问题是反斜杠在Java字符串和正则表达式中都有特殊含义。因此,您需要在Java源代码中使用四个斜杠,将两个斜杠传递给regex解析器以在regex中获得

  • 问题内容: 我有一个字符串: 我想在所有运算符上拆分字符串,但将运算符包括在数组中,因此结果数组如下所示: 我目前有这个: 这非常接近,它给出: 我有什么办法使多个字符运算符像我希望的那样出现在数组中? 作为不那么重要的第二个问题,正则表达式中是否有办法从字母周围修剪空格? 问题答案: 这应该做。一切都很好地存储在中。