我想使用正则表达式替换一些单词。
我的话
[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);
这里是一个简单的解决方案,要求您的开始代码标签具有语言子字符串,并捕获它以便在替换字符串中重复使用。
这是三种基本情况...
代码:(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">',
)