正则表达式替换类似的字符串分隔符

时间:2017-03-04 23:59:53

标签: php html regex preg-replace

我已经在StackOverflow上查看了各种正则表达式的答案,但我无法找到与我的问题相关的任何内容。

我有一些表单$inline_latex$$$paragraph_latex$$的网页文本(实际上是LaTeX),我想分别用PHP替换它们

<span class="latex">\color{red}inline_latex</span>

<p class="latex">\color{red}paragraph_latex</p>

即。用span标记替换$的分隔符,用段落标记替换$$。在$$$存在的任何地方,都会同时替换多个字符串。

我尝试了什么:我正在使用正则表达式,所以我使用了str_replace三次。第一个用$$替换~,第二个用$替换span,第三个用~替换p。这是粗制滥造但它仍然无法正常工作,因为我没有针对关闭标签的解决方案。我知道使用regex / preg_replace会更好。

请帮帮忙? 这不是作业。我是一名数学教师,设计一个简单的课堂练习网页,我正在学习PHP。感谢

1 个答案:

答案 0 :(得分:0)

首先替换

\$\$([^$]+)\$\$

<p class="latex">\\color{red}\1</p>

然后替换

\$([^$]+)\$

<span class="latex">\\color{red}\1</span>

请参阅演示12