You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP正则表达式为LaTeX数学公式包裹自定义HTML标签

PHP正则匹配包裹LaTeX公式实现方案

核心逻辑

你需要匹配的是用\(和\)包裹的行内LaTeX公式,直接使用PHP的preg_replace函数做全局替换即可实现需求。

完整实现代码

<?php
// 输入字符串示例
$input = '<p><code>y = x2  or \(x = \sqrt{y}\) . For all \(y \geq 0\), x is defined. Thus, y is set of all non-negative and real number. Hence, range is \(y \geq 0\) or [0, ∞).</code></p>';

// 正则替换逻辑
$pattern = '/\\\\\(.*?\\\\\)/';
$replace = '&lt;math&gt;$0&lt;/math&gt;';
$output = preg_replace($pattern, $replace, $input);

// 输出结果
echo $output;
?>

规则说明

  • 正则里的\\\\会经过两层转义:PHP字符串层将两个反斜杠转义为一个,正则引擎层再将两个反斜杠匹配为文本中的一个反斜杠,因此\\\\\(对应匹配文本中的\(
  • .*?是非贪婪匹配规则,确保只匹配到最近的\)为止,不会出现跨多个公式匹配的问题
  • 如果存在跨行公式场景,可在正则末尾加s修饰符,即/\\\\\(.*?\\\\\)/s,让.可以匹配换行符
  • 替换内容中的$0代表正则匹配到的完整公式内容,不需要额外拆分捕获组

运行上述代码输出的结果和你给出的预期结果完全一致。

内容的提问来源于stack exchange,提问作者Suresh Chand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:15:03