在下面的代码中:
<a href="http://example.com/yadayada" yada-yadayada="/yada/yadayada/yadayada.php?x=12345&yadayadayasomehtmltagandgiberishtexthere
我如何在 php 中编写一个正则表达式,它将删除之前x=
和之后的所有内容,&am
所以我只会得到这个值12345
,这只是一个例子,但实际上,它会有所不同。
假设您使用以下方法提取了整个 URL DOMDocument
:
// $url = '/yadayada?x=12345&y=7890';
parse_str(parse_url($url, PHP_URL_QUERY), $arr);
echo $arr['x'];
也可以看看:parse_url()
parse_str()
使用与数字 [0-9] 匹配的 simple \d
:
$text = '<a href="http://example.com/yadayada" yada-yadayada="/yada/yadayada/yadayada.php?x=12345&yadayadayasomehtmltagandgiberishtexthere';
preg_match_all("#x=(\d+)(&|&)#", $text, $match);
print_r($match[1]);//12345
更新:模式更改为x=(\d+)(&|&)
好的,我使用@Akam 和@Herberts 帮助解决了它。
preg_match_all("#x=(\d+)&#", $url, $match); print_r($match[1]);
多谢你们!