Java 正则表达式模式“^\\\”:\\|$&引用;未在管柱的开始和结束处检测管道

Java 正则表达式模式“^\\\”:\\|$&引用;未在管柱的开始和结束处检测管道,java,regex,Java,Regex,下面的代码在我认为应该返回true时返回false。谁能告诉我为什么? 它使用java.util.regex.Pattern来解析正则表达式 Pattern.compile("^\|:\|$".matcher("| |").matches(); 字符串文本中的\必须作为\转义 如果要匹配两者之间的任何内容,请使用*,而不是: 在Java中使用该方法时,不需要添加字符串边界^和$,因为此函数仅在匹配整个字符串时返回true 你似乎想要 Pattern.compile("\\|.*\\|").

下面的代码在我认为应该返回true时返回false。谁能告诉我为什么? 它使用java.util.regex.Pattern来解析正则表达式

Pattern.compile("^\|:\|$".matcher("|   |").matches();

字符串文本中的
\
必须作为
\
转义

如果要匹配两者之间的任何内容,请使用
*
,而不是

在Java中使用该方法时,不需要添加字符串边界
^
$
,因为此函数仅在匹配整个字符串时返回
true

你似乎想要

Pattern.compile("\\|.*\\|").matcher("| |").matches();

“设计模式”绝对不是“正则表达式模式”,关键是
matches()
需要完整的字符串匹配。为什么:和空格?我不明白这种尝试的逻辑。你想要
“^\\\\\\\\\\\\\\\$”
?它应该返回false,它只能匹配字符串
。我正在尝试检测以“\\\”开头、以“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\”@revo是的字符串,谢谢(我花了一段时间才看到差异…这个字符串转义太痛苦了…)注意,我没有删除这个答案(现在),因为我仍然不确定它是否有用(这个问题显然不是完全重复的IMO),而且我认为答案的第一行不再必要。投票赞成。