正则表达式匹配一个字符串与星号

问题描述:

我使用Java编码,我想分割我的字符串。我想分开它。正则表达式匹配一个字符串与星号

/* sort */ 

是的,我打算拆分,所以我需要它包含“/ * *排序/”我已阅读作为一个字符串一个.java文件。我创建了一个代码,它对java类文件中预定义的数组进行排序。

确切说和做,在

} 

另一个分割,然后我想帮助如何去分手了数组,因为我会

留下一个例子是此

final static String[] ANIMALS = new String[] /* sort */ { "eland", "antelope", "hippopotamus"}; 

我的目标是将该数组排序到.java文件中并替换它。这是我当前的代码

private void editFile() throws IOException { 
    //Loads the whole Text or java file into a String 
    try (BufferedReader br = new BufferedReader(new FileReader(fileChoice()))) { 
     StringBuilder sb = new StringBuilder(); 
     String line = br.readLine(); 

     while (line != null) { 
      sb.append(line); 
      sb.append(System.lineSeparator()); 
      line = br.readLine(); 
     } 
     everything = sb.toString(); 
    } 
    arrayCutOff = everything.split("////* sort *////"); 
    for(int i = 0; i < arrayCutOff.length; i++){ 
     System.out.println(arrayCutOff[i]); 
    } 
} 

这基本上读取整个.txt或使用名为.java完全相同的格式完全文件分割成一个字符串。我计划将它分成/ * sort * /并对数组进行排序,但是我意识到如果我这样做了,我可能无法替换它。

+0

你想说什么,你听起来很困惑。你能用一个例子多解释一下吗? –

+0

@ZubairNabi只是举了一个例子 – Peerless

+1

你真的问如何逃避正则表达式中的特殊字符吗?您无法在网络上找到*任何*答案? – Andreas

your're使用Java 8你可能会去这个方向考虑:

private void editFile() throws IOException { 
    List<String> lines = Files.readAllLines(Paths.get(fileChoice())); 
    String content = lines.stream().collect(Collectors.joining(System.lineSeparator())); 
    Stream.of(content.split(Pattern.quote("/* sort */"))).forEach(System.out::println); 
} 

但是,你问的伎俩是Pattern.quote,其历史可追溯到Java 5的它会qoute字面所以可以用作regExs中的文字,并且比摔跤带反斜杠更方便(可靠,我认为)...