Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带竖条的Java正则表达式_Java_Regex - Fatal编程技术网

带竖条的Java正则表达式

带竖条的Java正则表达式,java,regex,Java,Regex,我想知道下面的正则表达式是否返回false。我看不出“|”不应该匹配。有什么想法吗?我如何允许模式匹配“|” Pattern Pattern=Pattern.compile(“([^\\*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\]\\\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

我想知道下面的正则表达式是否返回false。我看不出“|”不应该匹配。有什么想法吗?我如何允许模式匹配“|”


Pattern Pattern=Pattern.compile(“([^\\*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\]\\\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

我想你是想说这样的话:

([^*\\{}[\]=><])*
([^*\{}[\]=><
要将其放入字符串中,可以执行以下操作:

"([^*\\\\{}[\\]=><])*"

”([^*\\\{}[\\]=>我认为您误解了正则表达式中字符类的概念:
[^…]
^
之后的所有字符视为普通字符,而不是元字符。因此,您不需要类中的“或”管道


由于字符类中存在
|
,并且您正在使用
^
反转集合,因此单个管道与您的regexp不匹配。

此打印
true

 System.out.println(Pattern
            .compile("([\\||^\\*|\\||\\{|\\}|\\[|\\]|=|>|<])*")
            .matcher("|")
            .matches());
System.out.println(模式)

.compile(([\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\。
"([^*\\\\{}[\\]=><])*"
 System.out.println(Pattern
            .compile("([\\||^\\*|\\||\\{|\\}|\\[|\\]|=|>|<])*")
            .matcher("|")
            .matches());