我使用file_get_contents()
提取长文本。文本文件包含以下格式的信息:
---
Description:
---
Some description here, with long text sentences.
---
Part 1
---
Information with part 1 in this section followed by path 2.
现在我希望在---
之间设置信息的样式,例如我想将“描述”和“第1部分”加粗,并以纯文本显示其余信息。
我认为可以通过preg_match来实现。但我想知道是否也可以使用任何其他方法。
答案 0 :(得分:2)
以下内容应该有效:
preg_replace('/---(.*?)---/s', '<strong>$1</strong>', $text);
表达式捕获----
对之间的任何内容。替换模式中的$1
表示反向引用 - 它包含第一个捕获组匹配的内容。 s
修饰符使.
也与换行符匹配。
如果您还想删除空格,可以这样做:
preg_replace('/---\s*(.*?)\s*---/s', '<strong>$1</strong>', $text);
如果文本中可能出现---
对,那么您可以使用以下模式:
preg_replace('/---(?=\s)(\s)([^\r\n]+)(\s)---/s','<strong>$2</strong>$3', $text);
答案 1 :(得分:0)
您也可以使用爆炸
$expl = explode("---",$yourtext);
echo '<b>'.$expl[0].'</b>'; //**Description:**
echo $expl[1]; //Some description here, with long text sentences.
echo '<b>'.$expl[2].'</b>'; //**Part 1**
echo $expl[3]; //Information with part 1 in this section followed by path 2.
答案 2 :(得分:0)
您可以使用正则表达式执行此操作。即使您想要加粗的文本中有连字符,以下内容也会起作用。
echo preg_replace('/---(\r\n|\n|\r)([^\n\r]+)(\r\n|\n|\r)---/s', '<strong>$2</strong>$3', $text);
例如,假设您的文字是:
---
Descrip---tion:
---
Some description here, with long text sentences.
---
Part 1
---
Information with part 1 in this section followed by path 2.
以上代码将替换为:
<strong>Descrip---tion:</strong>
Some description here, with long text sentences.
<strong>Part 1</strong>
Information with part 1 in this section followed by path 2.