用html标记和动态类名称替换定制的BBCode样式的开始代码标记

问题描述 投票:1回答:1

我想使用正则表达式替换一些单词。

我的话

[code-html(or css,js)]

html是可变的。我想这样替换

<pre><code class="language-html(or css,js)">

如何使用正则表达式替换所有变量?

我只能替换一种情况。

preg_match_all("/\[code-([a-zA-Z0-9]+)\]/", "<pre><code class=\"([a-zA-Z0-9]+)\]\">", $matches);
php regex preg-replace
1个回答
0
投票

这里是一个简单的解决方案,要求您的开始代码标签具有语言子字符串,并捕获它以便在替换字符串中重复使用。

这是三种基本情况...

代码:(Demo

$inputs = [
    '[code-html]',
    '[code-css]',
    '[code-js]',
];

var_export(
    preg_replace(
        '~\[code-(html|css|js)]~',
        '<pre><code class="language-$1">',
        $inputs
    )
);

输出:

array (
  0 => '<pre><code class="language-html">',
  1 => '<pre><code class="language-css">',
  2 => '<pre><code class="language-js">',
)
© www.soinside.com 2019 - 2024. All rights reserved.