我想从一个字符串中找到段落,并格式化它们,我有什么作品,但它不能 100% 工作。
所以,我有这个看起来像这样的字符串:
##Chapter 1
Once upon a time there was a little girl named sally, she went to school.
One day it was awesome!
##Chapter 2
We all had a parade!
我正在格式化字符串,通过转换##...
为<H2>
's,它现在看起来像这样:
<h2>Chapter 1</h2>
Once upon a time there was a little girl named sally, she went to school.
One day it was awesome!
<h2>Chapter 2</h2>
We all had a parade!
现在我想将所有内容转换为一个段落,为此我这样做:
// Converts sections to paragraphs:
$this->string = preg_replace("/(^|\n\n)(.+?)(\n\n|$)/", "<p>$2</p>", $this->string);
// To Remove paragraph tags from header tags (h1,h2,h3,h4,h5,h6,h7):
$this->string = preg_replace("/<p><h(\d)>(.+?)<\/h\d><\/p>/i", "<h$1>$2</h$1>", $this->string);
这是最终输出(为便于阅读添加了新行):
<h2>Chapter 1</h2>
Once upon a time there was a little girl named sally, she went to school.
<p>One day it was awesome!</p>
<h2>Chapter 2</h2>
<p>We all had a parade!</p>
正如我在开头所说的那样,这不是 100% 有效的,而且正如你所看到的,第一段没有添加一个段落。我可以做些什么来改进正则表达式?