Php 与URL匹配并返回所需值的正则表达式

Php 与URL匹配并返回所需值的正则表达式,php,regex,wordpress,Php,Regex,Wordpress,我需要与URL匹配并返回所需值的正则表达式 示例(如果URL与匹配) 然后 它应该返回:?amp=1 否则 它应该返回:false您没有指定正在使用的编程语言,但您可能需要以下内容: php: $new = preg_replace('%/amp\b(?:/|~)?%si', '/?amp=1', $old); new_string = re.sub(r"/amp\b(?:/|~)?", "/?amp=1", old_string, 0, re.IGNORECASE) python: $ne

我需要与URL匹配并返回所需值的正则表达式

示例(如果URL与匹配)

然后

它应该返回:
?amp=1

否则


它应该返回:
false

您没有指定正在使用的编程语言,但您可能需要以下内容:

php

$new = preg_replace('%/amp\b(?:/|~)?%si', '/?amp=1', $old);
new_string = re.sub(r"/amp\b(?:/|~)?", "/?amp=1", old_string, 0, re.IGNORECASE)
python

$new = preg_replace('%/amp\b(?:/|~)?%si', '/?amp=1', $old);
new_string = re.sub(r"/amp\b(?:/|~)?", "/?amp=1", old_string, 0, re.IGNORECASE)

您应该能够使用
preg\u replace
?amp=
附加到匹配字符串的末尾。它的功能已经实现了您需要的
if
/
else
功能

如果找到匹配项,则将返回新的主题,否则,如果发生错误,主题将原封不动地返回或返回NULL

(或者我误读了
它应该返回noting

-

差不多

amp\K( |\/|~)$
应该这样做

$string = 'http://example.com/amp~';
echo preg_replace('/amp\K( |\/|~)$/', '$1?amp=1', $string);
$1
是可选的,不确定是否要包含找到的字符

PHP演示:

正则表达式演示:


$
是字符串的结尾
()
是一个捕获和更改组<代码>|s是更改
\K
跳过以前匹配的正则表达式部分。

使用正则表达式可以过滤字符串,但据我所知,不能向字符串添加新字符。实际上,我使用的是支持正则表达式的WordPress插件“安全重定向管理器”。因此,我需要通过在URL末尾添加?amp,将URL末尾有amp的URL重定向到新的URL。谢谢@chris85纠正我的错误。我的意思是,如果它匹配任何一个示例,那么它的前缀应该是?amp=1。看起来安全重定向管理器的开发人员在Wordpress论坛上未处于活动状态。你能帮我解决这个问题吗?