preg 替换 wiki 标签
preg replace wiki tag
我正在尝试替换字符串:
[[Rock music|rock]], [[blues]], [[soul music|soul]], [[pop music|pop]],[[Have a Little Faith (Joe Cocker album)|Have a Little Faith]]
至:
rock, blues, soul, pop, Have a Little Faith
什么是正确的正则表达式?
我测试了这个模式 /\[[[\w\s]+\W(.*)\]],/
但没有成功。
你可以使用
'~\[\[(?:[^][|]+\|)?([^][|]+)]]~'
并替换为</code>。见 <a href="https://regex101.com/r/jL1tM2/2" rel="nofollow">regex demo</a></p>
<p><em>解释</em>:</p>
<ul>
<li><code>\[\[
- 文字 [[
(?:[^][|]+\|)?
- 可选(1 或 0)除 [
、]
和 |
以外的 1+ 个字符,直至文字 |
[^][|]+
- 第 1 组:[
、]
和 |
以外的 1+ 个字符
]]
- 文字 ]]
$str = "[[Rock music|rock]], [[blues]], [[soul music|soul]], [[pop music|pop]], [[Have a Little Faith (Joe Cocker album)|Have a Little Faith]] ";
$result = preg_replace('~\[\[(?:[^][|]+\|)?([^][|]+)]]~', "", $str);
echo $result;
我正在尝试替换字符串:
[[Rock music|rock]], [[blues]], [[soul music|soul]], [[pop music|pop]],[[Have a Little Faith (Joe Cocker album)|Have a Little Faith]]
至:
rock, blues, soul, pop, Have a Little Faith
什么是正确的正则表达式?
我测试了这个模式 /\[[[\w\s]+\W(.*)\]],/
但没有成功。
你可以使用
'~\[\[(?:[^][|]+\|)?([^][|]+)]]~'
并替换为</code>。见 <a href="https://regex101.com/r/jL1tM2/2" rel="nofollow">regex demo</a></p>
<p><em>解释</em>:</p>
<ul>
<li><code>\[\[
- 文字 [[
(?:[^][|]+\|)?
- 可选(1 或 0)除 [
、]
和 |
以外的 1+ 个字符,直至文字 |
[^][|]+
- 第 1 组:[
、]
和 |
]]
- 文字 ]]
$str = "[[Rock music|rock]], [[blues]], [[soul music|soul]], [[pop music|pop]], [[Have a Little Faith (Joe Cocker album)|Have a Little Faith]] ";
$result = preg_replace('~\[\[(?:[^][|]+\|)?([^][|]+)]]~', "", $str);
echo $result;