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

java中的模式识别器

java中的模式识别器,java,pattern-matching,Java,Pattern Matching,我正在用java编写一个文件重命名程序。问题在于何时给出输入模式 当输入像(][)那样复杂时,我通过java.util.regex.Pattern类得到错误 编写此代码的主要问题是输入模式和替换模式是用户输入。在处理过程中如何处理此类字符???您可以使用转义正则表达式中的特殊字符。您可以使用转义正则表达式中的特殊字符。它们是regex中的保留字符 你需要用两个反斜杠来摆脱他们 //] 哎呀,我是说微软的影响力太大了 反斜杠\\] 它们是正则表达式中的保留字符 你需要用两个反斜杠来摆脱他们 //]

我正在用java编写一个文件重命名程序。问题在于何时给出输入模式

当输入像(][)那样复杂时,我通过java.util.regex.Pattern类得到错误


编写此代码的主要问题是输入模式和替换模式是用户输入。在处理过程中如何处理此类字符???

您可以使用转义正则表达式中的特殊字符。

您可以使用转义正则表达式中的特殊字符。

它们是regex中的保留字符 你需要用两个反斜杠来摆脱他们

//]

哎呀,我是说微软的影响力太大了

反斜杠\\]


它们是正则表达式中的保留字符 你需要用两个反斜杠来摆脱他们

//]

哎呀,我是说微软的影响力太大了

反斜杠\\]


这是一个如何在Java源代码中转义特殊RegExp字符的示例。我相信,如果用户正在输入模式,则必须手动转义特殊字符


package edu.mew.test.regexp;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegExpPatternTester {

  public static void main(String[] args) {
    String s1 = "filename()[].txt";
    Pattern p = Pattern.compile(".*\\(\\)\\[\\].*");
    Matcher m1 = p.matcher(s1);
    System.out.println(m1.matches());
    String s2 = "filename.txt";
    Matcher m2 = p.matcher(s2);
    System.out.println(m2.matches());
  }

}


这是一个如何在Java源代码中转义特殊RegExp字符的示例。我相信,如果用户正在输入模式,则必须手动转义特殊字符


package edu.mew.test.regexp;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegExpPatternTester {

  public static void main(String[] args) {
    String s1 = "filename()[].txt";
    Pattern p = Pattern.compile(".*\\(\\)\\[\\].*");
    Matcher m1 = p.matcher(s1);
    System.out.println(m1.matches());
    String s2 = "filename.txt";
    Matcher m2 = p.matcher(s2);
    System.out.println(m2.matches());
  }

}


嗯,那很好。但是在搜索时,它无法从文件名中识别模式..嗯,这很好。但是在搜索时,它不能识别文件名中的模式。反斜杠是“\
,而不是“
/”。你想要的是
“\\””
,而不是
“\\\\””
。反斜杠是“\
,而不是“
”。你想要的是
“\\”
,而不是
“\\”。
。是的,这是单元测试的一部分……是的,这是单元测试的一部分。。。