Php 重定向以specialcharacter和number结尾的Url模式
我的要求是重定向我的一些网址,其中包含一个8位数字和一个特殊字符的结尾 下面给出了示例URL www.example.com/anything-here/hello-12345677 www.example.com/anything-here/reach-here/reach-hello-12543598 www.example.com/anything-here/hello-12345677 我在php中使用pregmatch查找包含“-”和8位数字的模式 我尝试了下面的代码,但它对我不起作用。我的模式正确吗Php 重定向以specialcharacter和number结尾的Url模式,php,regex,preg-match,Php,Regex,Preg Match,我的要求是重定向我的一些网址,其中包含一个8位数字和一个特殊字符的结尾 下面给出了示例URL www.example.com/anything-here/hello-12345677 www.example.com/anything-here/reach-here/reach-hello-12543598 www.example.com/anything-here/hello-12345677 我在php中使用pregmatch查找包含“-”和8位数字的模式 我尝试了下面的代码,但它对我不起作用
$result = preg_match("#.*/-\d{8}$#i", request_uri());
下面的模式将匹配任何带有破折号的URL,破折号后面后跟8位数字。结尾带有特殊字符的URL将不匹配
$result = preg_match("/.*-\d{8}$/i", request_uri());
此处演示:
以下模式将匹配任何带有破折号的URL,破折号后面跟着8位数字。结尾带有特殊字符的URL将不匹配
$result = preg_match("/.*-\d{8}$/i", request_uri());
此处演示:
$result=substr(请求uri(),strpos(请求uri(),“-”)+1)
来源:$result=substr(请求uri(),strpos(请求uri(),“-”)+1)
来源:您使用的正则表达式的问题在于,您将破折号的模式和八位数字直接放在正斜杠之后,在您展示的所有示例中,斜杠和破折号之间还有其他字符
// ***** <---These chars don't match your pattern
$url = "www.example.com/anything-here/hello-12345677";
// .* / -\d{8} $
/*****您使用的正则表达式的问题是,您将破折号的模式和八位数字直接放在正斜杠之后,在您展示的所有示例中,斜杠和破折号之间还有其他字符
// ***** <---These chars don't match your pattern
$url = "www.example.com/anything-here/hello-12345677";
// .* / -\d{8} $
//****什么是特殊字符?我只看到数字。HI Chris“-”是后跟8位数字的特殊字符。例如:“-12345678”哦,可能需要改写和结尾的特殊字符。您的任何URL中都没有/-
。这就是为什么你找不到火柴。例如,-\d{8}$
将满足-
的要求,然后在字符串的末尾添加8个数字。因此,我只需要-\d{8}对吗?从另一个角度看,-
就是-
并且字符串中的某个地方有8个数字。您也不希望$result
有匹配的文本,对吗?特殊字符是什么?我只看到数字。HI Chris“-”是后跟8位数字的特殊字符。例如:“-12345678”哦,可能需要改写和结尾的特殊字符。您的任何URL中都没有/-
。这就是为什么你找不到火柴。例如,-\d{8}$
将满足-
的要求,然后在字符串的末尾添加8个数字。因此,我只需要-\d{8}对吗?从另一个角度看,-
就是-
并且字符串中的某个地方有8个数字。您也不希望$result
有匹配的文本,对吗?*
和i
实际上是不需要的。@Vishnu您想在结尾匹配什么特殊字符?实际上url以“-”和8位数字结尾。但是任何东西都可以在“-”和8位数之前。就像任何东西一样——12345678,任何东西——12345678,任何东西——12345678。我使用的是php 5.6,你确定我的模式不符合这个要求吗?实际上不需要*
和I
。@Vishnu你想在结尾匹配什么特殊字符?实际上url以“-”和8位数字结尾。但是任何东西都可以在“-”和8位数之前。就像任何东西一样——12345678,任何东西——12345678,任何东西——12345678。我使用的是php 5.6您确定我的模式不符合此要求吗?检查此链接:。检查此链接:。