我有一个这样的网址:http://example.com/c/TEXTTOMATCH/
。问题是网址并不总是这样;有时它是http://example.com/c/TEXTTOMATCH/#/?test
。我试图使用正则表达式来抓取/c/
和/
之间的所有内容。我试过了
$catpreg = preg_match('/c(.*)/', $reffer, $matches);
但它失败了。
答案 0 :(得分:3)
这个怎么样:
<?php
$url='http://example.com/wreqwreqrq/rfqewrqwe/c/TEXTTOMATCH/';
$split_url=parse_url($url, PHP_URL_PATH);
//print_r($split_url);
$e=explode('/',$split_url);
//find "c" key and add one
$find=array_search('c',$e);
echo $e[$find+1];
答案 1 :(得分:2)
试试这个:
preg_match('#/c/(.*?)/#', $reffer, $matches);
你只是c
之后的所有内容,与斜杠不匹配。你的调用中的斜杠被用作正则表达式的分隔符,我使用#
作为分隔符,因此我可以在正则表达式中使用/
而不必转义它们。
非贪婪量词.*?
确保它仅与第二个示例中的TEXTTOMATCH
匹配,而不是TEXTTOMATCH/#
。