输入: #This is a header\nSome line\nAnother line
期望的输出:
#This is a header
<p>Some Line</p>
<p>Another line</p>
我试过这个:
s = s.replaceAll("(^|\\n)*(?!#)([^\\n]+)(\\n|$)", "$1<p>$2</p>$3");
但它无法正常工作。 所以我感谢你的帮助。
答案 0 :(得分:0)
a.replaceAll("(?m)^(#[^\r\n]+)\r?\n([^\r\n]+)\r?\n([^\r\n]+)$", "<p>$1</p><p>$2</p><p>$3</p>")
正则表达式:(?m)^(#[^\r\n]+)\r?\n([^\r\n]+)\r?\n([^\r\n]+)$
(?m)
添加了多重标记。这意味着^
和$
字符的行为方式不同。^
任何一行的开头(#[^\n\r]+)
第1组:文字#
一个或多个非换行和非回车字符\r?\n
可选回车字符,换行符和非回车字符([^\n]+)
第2组:1个或多个非换行和非回车字符\r?\n
可选回车字符,换行符和非回车字符([^\n]+)
第3组:1个或多个非换行和非回车字符$
任意行的结尾取代:<p>$1</p><p>$2</p><p>$3</p>
$n
将插入该组号。因此$1
将成为“#This is a header”。