从字符串中获取ID。正则表达式问题

时间:2010-06-28 09:29:31

标签: php regex

我正在尝试从URL字符串中获取ID。

我正在尝试使用以下代码: -

FROM:

<url>http://www.monkeys.com/monkey.php?id=24</url>

我希望得到'24': -

$ID = preg_replace($url, '/^<url>.*\?id=(.*)<\/url>$/', '\1');

任何帮助都会非常感激 - 我确定这是一个常见问题,但我觉得正则表达令人费解。

3 个答案:

答案 0 :(得分:3)

正则表达式是这项工作的错误工具。使用

示例:

$url = "http://www.monkeys.com/monkey.php?id=24";
parse_str(parse_url($url, PHP_URL_QUERY), $parts);
var_dump( $parts ); // 24

<URL>元素中获取URL应该是微不足道的。 DOM是你的朋友。请参阅有关Reading XML with PHP的其他各种问题,以及本文为何should not use Regex for parsing HTML

答案 1 :(得分:0)

你可以使用这个正则表达式:

/^[^?]+\?id=(.*).*$/

答案 2 :(得分:0)

如果ID仅为数字:

/\?id=(\d+)/

如果ID

之后没有任何内容
/\?id=(.*)/