使用preg_replace解析HTML

时间:2012-09-16 18:30:20

标签: php html html-parsing preg-replace

我正在寻找一个正则表达式,将以-(短划线)开头的任何文本行转换为项目符号点(<li>)。

例如:

- This is a point
- This is another point

变为:

<li>This is a point</li>
<li>This is another point</li>

任何想法都将不胜感激!

3 个答案:

答案 0 :(得分:2)

我们不会提供代码,我们会帮助回答任何问题。


这是我帮助你做你想要实现的目标的答案。

看看strpos(),如果找不到你要找的东西,它会返回false。现在您可以创建一个IF语句。

如果没有返回false,则运行循环。至于替换方面,请看str_replace()。您还可以使用strlen()找出可能对您的案例有多少信件。


同样,这只是为了帮助您实现目标的快速提升。我希望你的建议不要求代码。

:为什么不进行一些谷歌搜索?我很确定某人已经完成了你想要完成的任务。

答案 1 :(得分:2)

Markdown会为您做到这一点,有一个port for PHP by Michel Fortin

它还将* this *转换为,并将此**转换为。有关完整列表,请参阅the official Markdown site

答案 2 :(得分:0)

听起来你想使用正则表达式组。

preg_replace('/^- (.*)$/m', '<li> \1 </li>', $string);

regexp末尾的'm'确保'^'和'$'元字符匹配行的开头和结尾。模式的带括号的部分捕获它匹配的文本,以便稍后可以在替换字符串中使用它。在这种情况下,'\ 1'指的是模式中第一个括号开始的分组。