【问题标题】:Replace customized BBCode-style opening code tags with html tags and a dynamic class name用 html 标签和动态类名替换自定义的 BBCode 样式的开始代码标签
【发布时间】:2020-05-01 05:30:24
【问题描述】:
我想用正则表达式替换一些单词。
我的话
[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】:
这是一个简单的解决方案,它要求您的开始代码标签具有语言子字符串并将其捕获以在替换字符串中重复使用。
这里是三个基本案例...
代码:(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">',
)