0

如果我在 Java 中使用模式和匹配器,如何在找到子字符串后立即添加换行符? 更新

我找到了使用该replaceAll(String,String);方法的解决方案

非常感谢大家,我的解决方案已格式化如下

 String contentsToSearch = "This is an example string /* example comment in my string */ with some extra text following my inline comment";
//String regex = "[*/]" ;
//Pattern pattern = Pattern.compile(regex);
//Matcher matcher = pattern.matcher(contentsToSearch);

//if(matcher.find()){
      // add a line break to the string i am searching
 //}else{
      // print out my string regularly
  //    System.out.println(contentsToSearch);
 //}
 contentsToSearch = contentsToSearch.replaceAll("\\*/", "\\*/\n");
 System.out.println(contentsToSearch);
4

4 回答 4

1

你在寻找这样的东西吗?

yourString = yourString.replaceAll("yourRegex","$0\n")

$0表示与整个正则表达式部分匹配的组 0。您也可以代替\nSystem.getProperty("line.separator")选择操作系统中使用的分隔符。

于 2013-05-23T00:22:47.973 回答
1

http://docs.oracle.com/javase/tutorial/essential/regex/matcher.html上有一个很好的 Matcher 教程

看起来该页面上描述的 replaceFirst(String) 和 replaceAll(String) 可以工作。它们将替换匹配的文本,您可以替换为相同的文本加上 \n。

于 2013-05-23T00:25:18.343 回答
1

你可能想要这样的东西而不是使用 matcher.find:

System.out.println(contentsToSearch.replaceAll("\\*/", "\n"));
于 2013-05-23T00:26:09.257 回答
1

你可以简单地做:

contentsToSearch = contentsToSearch.replaceAll("(/\\*|\\*/)", "$1\n")
于 2013-05-23T00:31:50.913 回答