Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.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_Matcher_Dollar Sign - Fatal编程技术网

当想要比较两个美元符号(不是转义)时,字符串匹配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))
?另请参见