Php 与URL匹配并返回所需值的正则表达式
我需要与URL匹配并返回所需值的正则表达式 示例(如果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
?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论坛上未处于活动状态。你能帮我解决这个问题吗?