繁体   English   中英

PHP-preg_match正则表达式

[英]PHP - preg_match regex

我正在尝试使用preg_match来确定URL是否具有某些模式,现在它无法按我的预期工作。 这是我到目前为止的内容:

if(! preg_match('^lease/([0-9]+)/?', $url)) {
    wp_redirect( home_url(), 301 );
}

基本上我想看看url模式是否如下(lease关键字后跟一个数字),如果不是,则该页面应重定向到主页。 我对正则表达式不好,因此我需要一些帮助。 TIA。 www.example.com/lease/324

您需要在/lease前用.*?允许任何字符.*? ,字符串锚$和正则表达式定界符的结尾(我更喜欢~以免转义正斜杠):

if(! preg_match('~^.*/lease/([0-9]+)/?$~', $url)

或者您可以省略^.*? 部分,因为preg_match允许部分匹配

if(! preg_match('~/lease/([0-9]+)/?$~', $url)

除非您想知道尾随数字是什么,否则不需要捕获组(括号)。 但看起来您只想检查其中是否包含lease/{number}

您可以尝试以下方法:

if (! preg_match("/lease\/[0-9]+/", $url)) {
    wp_redirect( home_url(), 301);
}

包含租约,然后是斜杠,然后是1+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM