【问题标题】:Regex, WordPress, and the Search Regex plugin - converting a script to a shortcodeRegex、WordPress 和 Search Regex 插件 - 将脚本转换为简码
【发布时间】:2016-09-02 18:44:21
【问题描述】:

我正在使用 WordPress 和 Search Regex plugin

我需要隐藏数百个帖子,其中包含一个包含唯一相册编号的脚本。

每个脚本都需要更改为包含相同相册编号的简码。

这是一个例子:

搜索脚本:

<tt>%%wppa%%</tt> <tt>%%album=15%%</tt>

并将其替换为简码:

[wppa type="album" album="15"][/wppa]

我会在“搜索”字段中放置什么?

我将在替换字段中放置什么?

【问题讨论】:

  • 类似 Find: &lt;tt&gt;%%album=([^%]+)%%&lt;/tt&gt; Replace ....

标签: regex wordpress search replace search-regex


【解决方案1】:

使用这个正则表达式:

<tt>%%([^%]+)%%</tt>\s*<tt>%%([^%=]+)=([^%=]+)%%</tt>

还有这个替换:

[$1 type="$2" $2="$3"][/$1]

替换中的$ 数字指的是捕获组:()。总的来说,很简单,[^%]+ 匹配“not %”,\s* 匹配空格,[^%=]+ 匹配“not % or =”。

该插件使用 PCRE,但我不确定正则表达式是否需要任何调整,因为我不使用该插件。 (可能需要转义 / 字符。)

【讨论】:

  • 搜索 &lt;tt&gt;%%([^%]+)%%&lt;/tt&gt;\s*&lt;tt&gt;%%([^%=]+)=([^%=]+)%%&lt;/tt&gt; 没有结果
  • 使用转义字符 `` 搜索 &lt;tt&gt;%%([^%]+)%%&lt;\/tt&gt;\s*&lt;tt&gt;%%([^%=]+)=([^%=]+)%%&lt;\/tt&gt; 没有结果
  • 我遇到的问题是捕获专辑编号并将其移至替换位置。
猜你喜欢
  • 2019-02-16
  • 2021-02-05
  • 2016-10-25
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 2015-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多