如何在java中将#title
转换为<h1>title</h1>
?我正在尝试创建一种算法,将markdown格式转换为html格式。
答案 0 :(得分:6)
如果要创建markdown算法,请查找正则表达式。
String noHtml = "#title1";
String html = noHtml.replaceAll("#(.+)", "<h1>$1</h1>");
回答评论 - 有关字符类here的更多信息:
String noHtml = "#title1";
String html = noHtml.replaceAll("#([a-zA-Z]+)", "<h1>$1</h1>");
答案 1 :(得分:1)
假设您在开头和 end 中使用了标记的单词,您可以使用这样的方法来完成所有这些操作在一个字符串中。
private String replaceTitles(String entry) {
Matcher m = Pattern.compile("#(.*?)#").matcher(entry);
StringBuffer buf = new StringBuffer(entry.length());
while (m.find()) {
String text = m.group(1);
StringBuffer b = new StringBuffer();
b.append("<h1>").append(text).append("</h1>");
m.appendReplacement(buf, Matcher.quoteReplacement(b.toString()));
}
m.appendTail(buf);
return buf.toString();
}
如果你打电话
replaceTitles("#My Title One!# non title text, #One more#")
它将返回
"<h1>My Title One!</h1> non title text, <h1>One more</h1>"
答案 2 :(得分:0)
尝试:
String inString = "#title";
String outString = "<h1>"+inString.substring(1)+"</h1>";
或
String outString = "<h1>"+"#title".substring(1)+"</h1>";