1

谁能帮我找到下面的正则表达式

$string = "id=A12dk9-mds&name=4950";

我需要找到正则表达式来找到一个动态值(A12dk9-mds在这个例子中)。

即和之间的动态=内容&

4

3 回答 3

2

正如@MarkBaker 所说,最好的方法不是正则表达式,而是parse_str()因为您实际上是在处理 url 的查询字符串。

因此,以下应该可以正常工作:

parse_str($string,$arr);
echo $arr['id']; // A12dk9-mds
于 2012-09-20T21:55:42.573 回答
1

为此可以使用一个简单的正则表达式。

/id=([^&]*)&/

解释:

  • id=匹配 id=
  • ([^&]*)尽可能匹配除 & 符号之外的任何内容并返回
  • &匹配 &

只要您知道它们将始终介于 a=和 a之间,&这将起作用。

PHP代码:

$string = "id=A12dk9-mds&name=4950";
preg_match('/id=([^&]*)&/',$string, $answer);
print_r($answer[1]);
于 2012-09-20T21:48:13.760 回答
1

RegEx 在这里是错误的工具。这看起来像一个查询字符串,所以让我们使用 PHP 的查询字符串解析器,parse_str.

$string = "id=A12dk9-mds&name=4950";
parse_str($string, $parsed);
echo $parsed['id'];
于 2012-09-20T21:52:18.750 回答