带有 wordpress 简码属性的正则表达式
Regular Expression with wordpress shortcodes attributes
我们有以下简码,
[show_portfolio get="yachts" for="sale" in="europe" sort="length_overall" by="asc" page="1" perpage="18" theme="active-71" ref="http://replaceme.com" debug="true" engine="engine.com"]
[get_portfolio get="yachts" for="sale" in="europe" sort="length_overall" by="asc" page="1" perpage="18" theme="active-71" ref="http://replaceme.com" debug="true" engine="engine.com"]
我们想更换http://replaceme.com with http://targetadress.com
用以下正则表达式替换不是好主意,因为它也会捕获 href 标签
ref="[^"\r\n]*"
https://regex101.com/r/q1uumb/1/
我想知道是否有人帮我替换 (show|get)_portfolio tags
中的 http://replaceme.com with http://targetadress.com
我找不到 运行 遵循正则表达式 \[(show|get)_portfolio ref="(.+)"]
的方法
提前致谢
您可以使用:
$repl = preg_replace(
'\[(?:show|get)_portfolio\s+[^]]* ref="\Khttp://replaceme\.com"',
'http://targetadress.com"',
$str);
如果你想匹配 ref=
中的任何 URL 然后使用:
$repl = preg_replace(
'\[(?:show|get)_portfolio\s+[^]]*\s+ref="\K[^"]+"',
'http://targetadress.com"',
$str);
正则表达式详细信息:
\[
:匹配一个[
(?:show|get)_portfolio
:匹配get_portfolio
或show_portfolio
\s+
:匹配 1+ 个空格
[^]]*\s+ref="
:匹配 0 个或多个非 ]
字符后跟 1+ 个空格后跟 ref=
\K
: 重置匹配信息
http://replaceme\.com"
:L匹配http://replaceme\.com"
我们有以下简码,
[show_portfolio get="yachts" for="sale" in="europe" sort="length_overall" by="asc" page="1" perpage="18" theme="active-71" ref="http://replaceme.com" debug="true" engine="engine.com"]
[get_portfolio get="yachts" for="sale" in="europe" sort="length_overall" by="asc" page="1" perpage="18" theme="active-71" ref="http://replaceme.com" debug="true" engine="engine.com"]
我们想更换http://replaceme.com with http://targetadress.com
用以下正则表达式替换不是好主意,因为它也会捕获 href 标签
ref="[^"\r\n]*"
https://regex101.com/r/q1uumb/1/
我想知道是否有人帮我替换 (show|get)_portfolio tags
中的 http://replaceme.com with http://targetadress.com我找不到 运行 遵循正则表达式 \[(show|get)_portfolio ref="(.+)"]
提前致谢
您可以使用:
$repl = preg_replace(
'\[(?:show|get)_portfolio\s+[^]]* ref="\Khttp://replaceme\.com"',
'http://targetadress.com"',
$str);
如果你想匹配 ref=
中的任何 URL 然后使用:
$repl = preg_replace(
'\[(?:show|get)_portfolio\s+[^]]*\s+ref="\K[^"]+"',
'http://targetadress.com"',
$str);
正则表达式详细信息:
\[
:匹配一个[
(?:show|get)_portfolio
:匹配get_portfolio
或show_portfolio
\s+
:匹配 1+ 个空格[^]]*\s+ref="
:匹配 0 个或多个非]
字符后跟 1+ 个空格后跟ref=
\K
: 重置匹配信息http://replaceme\.com"
:L匹配http://replaceme\.com"