我想知道以下正则表达式是否返回false。我看不到“ |”不匹配。有任何想法吗?以及如何允许模式匹配“ |”?
Pattern pattern = Pattern.compile("([^\\*|\\\\|\\{|\\}|\\[|\\]|=|>|<])*");
boolean valid = pattern.matcher("|").matches();
提前致谢。
最佳答案
[^ ]
表达式匹配方括号中没有的任何字符。由于|
在方括号中,因此不匹配。所有字符(除了少数字符,例如\
和]
)都直接在[^ ]
表达式内使用。
我认为您的意思是这样的:
([^*\\{}[\]=><])*
除了这些字符外,它与任何其他字符都匹配:
*\{}[]=><
要将其放入字符串中,您可以这样做:
"([^*\\\\{}[\\]=><])*"