使用正则表达式在url中查找句点之后的值

时间:2012-03-21 09:19:08

标签: regex preg-match

我希望提取位于' specid'之后的数字。就在'& type'之前以下网址的一部分:

"的 http://subdom.someurl.com/cat/motorparts?id=12345&specid=245038.100006592&type=10&page=0 "

数字是变量,因此它们的长度可能会波动。

当谈到正则表达时,我是一个新手,但任何有助于我继续前进的帮助都会很棒。

2 个答案:

答案 0 :(得分:2)

@Quick Joe Smith的正则表达式答案会很好。

您还可以使用PHP中的url组件解析来检索数据,然后使用简单的 字符串操作

http://codepad.org/9kjggw8U

<?php
$tokens = array();
parse_str("http://subdom.someurl.com/cat/motorparts?id=12345&specid=245038.100006592&type=10&page=0",$tokens);
var_dump($tokens['specid']);
?>

答案 1 :(得分:1)

我对PHP不大,但看起来应该是这样的:

preg_match('/specid=\d+\.(\d+)/i', $input, $matches);

$matches是一个存储所有匹配项的数组。你所追求的价值将在第二个元素中。有关详情,请参阅preg_match

我不是百分百肯定,但是从我可以推断出的情况来看,确保你在模式字符串周围使用单引号,否则你将不得不逃避反斜杠,这使得正则表达式比现在更难以理解。