Java 正则表达式来匹配带星号的字符串
我正在用Java编写代码,我想拆分字符串。我想把它分成两份Java 正则表达式来匹配带星号的字符串,java,arrays,regex,file,regex-negation,Java,Arrays,Regex,File,Regex Negation,我正在用Java编写代码,我想拆分字符串。我想把它分成两份 /* sort */ 是的,我计划拆分一个作为字符串读取的.java文件,因此我需要它包含“/*sort*/”。我正在创建一段代码,对java类文件中预定义的数组进行排序 正是这样,然后再做一次分裂 } 然后我想知道如何分割阵列,因为我只剩下 举个例子 final static String[] ANIMALS = new String[] /* sort */ { "eland", "antelope", "hippopotamu
/* sort */
是的,我计划拆分一个作为字符串读取的.java文件,因此我需要它包含“/*sort*/”。我正在创建一段代码,对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]);
}
}
private void editFile()引发IOException{
//将整个文本或java文件加载到字符串中
try(BufferedReader br=new BufferedReader(new FileReader(fileChoice())){
StringBuilder sb=新的StringBuilder();
String line=br.readLine();
while(行!=null){
某人附加(行);
sb.append(System.lineSeparator());
line=br.readLine();
}
一切=某人做某事;
}
arrayCutOff=everything.split(“///*sort*//”;
for(int i=0;i
这基本上是将整个.txt或.java文件以完全相同的格式读入一个字符串。我计划在/*sort*/处拆分它,并对内部数组进行排序,但我意识到如果这样做,我可能无法替换它。考虑到您使用的是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);
}
private void editFile()引发IOException{
列表行=Files.readAllLines(path.get(fileChoice());
字符串内容=lines.stream().collect(collector.joining(System.lineSeparator());
Stream.of(content.split(Pattern.quote(“/*sort*/”)).forEach(System.out::println);
}
然而,您需要的技巧是
Pattern.quote
,它可以追溯到Java5。它将生成一个文本,因此可以在正则表达式中用作文本,并且比使用反斜杠更方便(我认为也是可靠的)…考虑到您使用的是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);
}
private void editFile()引发IOException{
列表行=Files.readAllLines(path.get(fileChoice());
字符串内容=lines.stream().collect(collector.joining(System.lineSeparator());
Stream.of(content.split(Pattern.quote(“/*sort*/”)).forEach(System.out::println);
}
然而,您需要的技巧是
Pattern.quote
,它可以追溯到Java5。它将生成一个文本,因此可以在正则表达式中用作文本,并且比使用反斜杠更方便(我认为也更可靠)…你想说什么,听起来很困惑。你能用这个例子再解释一下吗?@ZubairNabi刚刚举了一个例子。你真的在问如何在正则表达式中转义特殊字符吗?你在网上找不到任何答案?你是想说你想重新绘制这个“{”大羚羊“,”羚羊“,”河马“}”,考虑到正则表达式转义使用的是\
,你到底是怎么想到“//////*sort*//*”sort*//”
作为正则表达式匹配字符串/*sort*/
的Java文本的,不是/
,来转义特殊字符吗?你想说什么,听起来很困惑。你能用这个例子再解释一下吗?@ZubairNabi刚刚举了一个例子。你真的在问如何在正则表达式中转义特殊字符吗?你在网上找不到任何答案?你是想说你想重新绘制这个“{”大羚羊“,”羚羊“,”河马“}”,考虑到正则表达式转义使用的是\
,你到底是怎么想到“//////*sort*//*”sort*//”
作为正则表达式匹配字符串/*sort*/
的Java文本的,不是/
,以转义特殊字符?