如果我在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);
答案 0 :(得分:1)
你在找这样的东西吗?
yourString = yourString.replaceAll("yourRegex","$0\n")
$0
代表组0,它与整个正则表达式匹配。另外,\n
代替System.getProperty("line.separator")
,您可以使用{{1}}选择操作系统中使用的分隔符。
答案 1 :(得分:1)
在http://docs.oracle.com/javase/tutorial/essential/regex/matcher.html
上有关于Matcher的精彩教程看起来该页面上描述的replaceFirst(String)和replaceAll(String)可以正常工作。它们将替换匹配的文本,您可以使用相同的文本替换\ n。
答案 2 :(得分:1)
你可能想要这样的东西,而不是使用matcher.find:
System.out.println(contentsToSearch.replaceAll("\\*/", "\n"));
答案 3 :(得分:1)
你可以这样做:
contentsToSearch = contentsToSearch.replaceAll("(/\\*|\\*/)", "$1\n")