当想要比较两个美元符号(不是转义)时,字符串匹配java中的方法
我有一个最简单的代码,用来比较两个字符串输入,如下所示:当想要比较两个美元符号(不是转义)时,字符串匹配java中的方法,java,regex,matcher,dollar-sign,Java,Regex,Matcher,Dollar Sign,我有一个最简单的代码,用来比较两个字符串输入,如下所示: public class Validate { public static void main(String[] args) { String re = args[0]; String input = args[1]; System.out.println(input.matches(re)); } } 它按预期工作,除非您的两个输入是$和$,它只是打印出false。我
public class Validate {
public static void main(String[] args) {
String re = args[0];
String input = args[1];
System.out.println(input.matches(re));
}
}
它按预期工作,除非您的两个输入是$
和$
,它只是打印出false。我确实听说过你如何逃避任何特殊的正则字符,包括美元符号
但是,如果您想比较两个美元符号并在bash中打印出
true
,ProcessID替换为一个小整数。您不是在寻找equals
而不是matches
?字符串。matches
使用regex,而$/code>对regex很重要。您应该使用String.equals,或者转义$
$
是正则表达式(字符串末尾)中的一个特殊字符。您必须首先在任何Linux shell中转义它$$是一个特殊变量,因此您至少需要使用“\$\$”。在使用argv[0]之前,请尝试将其打印出来。是否尝试了input.matches(Pattern.quote(re))
?另请参见