我有多个URL,如下所示,这些URL都包含在末尾带有-XX-
字母和xxxxxxxxx
密钥的内容。
http://vayes-eys.dev/shoe-for-ladies/high-hields/7-pont-with-silver-stripes-PD-0a8564q56
或者
http://vayes-eys.dev/news/europe/england/cricket-news/josh-darpant-is-on-the-way-to-rome-NS-e3q3s2wq4q
我想要做的是:首先检查URL中是否存在-NS-
、-PD-
或-SP-
,然后获取-XX-
部分和其后面的部分,例如:e3q3s2wq4q
。
到目前为止,我所做的是:
$path = "shoe-for-ladies/high-hields/7-pont-with-silver-stripes-PD-0a8564q56"
if (preg_match('/-PD-|-NS-|-SP-/',$path)) {
preg_match("/(?<=(-PD-|-NS-|-SP-)).*/", $path, $match);
print_r($match);
}
这给我以下数组,但我不确定它是否正确。
array(
0 => 0a8564q56
1 => -PD-
)
我需要的是
PD
和0a8564q56
。感谢您的任何帮助。
preg_match_all
中使用-(NS|PD|SP)-(\w+)
正则表达式,并使用两个捕获组。 - anubhavapreg_match
呢?只需要把第二个放在条件语句里即可。 - chris85preg_match
,可以构建一个带有捕获组的模式来提取所需的信息。 - Casimir et Hippolyte