好的。我知道我错过了一些东西。我只是无法找出我错过了什么。下面提到的模式匹配“|”我不知道为什么。有人可以解释一下吗?谢谢。 我想匹配单个字符。字符集为{,},[,],|,?等等
public static void main(String[] args) {
String str = "";
if (str.matches("[\"|`|+|,|;|<|>|?|\\[|\\]|{|}|']"))
System.out.println("matches");
}
最佳答案
当您使用 ()
语法时,您正在使用 []
开始和结束表达式。方括号让您列出一堆匹配的字符,并且 |
多次出现在您的列表中。括号设置一个分组,您可以在其中使用 |
表示“或”。
我认为您的解决方案是删除那些 |
。您不需要用任何东西分隔方括号内的字符,只需将它们全部列出即可。
关于java - 为什么下面显示的代码中正则表达式模式匹配 "|"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22144878/