java - 为什么下面显示的代码中正则表达式模式匹配 "|"?

标签 java regex

好的。我知道我错过了一些东西。我只是无法找出我错过了什么。下面提到的模式匹配“|”我不知道为什么。有人可以解释一下吗?谢谢。 我想匹配单个字符。字符集为{,},[,],|,?等等

public static void main(String[] args) {
    String str = "";
    if (str.matches("[\"|`|+|,|;|<|>|?|\\[|\\]|{|}|']"))
        System.out.println("matches");

}

最佳答案

当您使用 () 语法时,您正在使用 [] 开始和结束表达式。方括号让您列出一堆匹配的字符,并且 | 多次出现在您的列表中。括号设置一个分组,您可以在其中使用 | 表示“或”。

我认为您的解决方案是删除那些 |。您不需要用任何东西分隔方括号内的字符,只需将它们全部列出即可。

关于java - 为什么下面显示的代码中正则表达式模式匹配 "|"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22144878/

相关文章:

java - 发现蓝牙设备

regex - 检查字符串是否与 Bash 脚本中的正则表达式匹配

regex - bash(首选 sed 或 awk)删除第一个和最后一个实例之间的所有内容

php - 需要用 RegExp 选择 2 个字母

java - 将浮点值分配给 double 值

java - Java 中的什么在虚拟内存中使用 400M,我如何降低该使用量?

java - 本地程序如何访问hdfs目录?

Java:从字符串中获取 float 和字符串值

javascript - 正则表达式在javaScript中将数字与浮点相匹配

java - 从名片详细信息中提取姓名