查找字符串的正则表达式

时间:2012-09-20 21:44:11

标签: php preg-match

任何人都可以帮我找到下面的正则表达式

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

我需要找到正则表达式来查找动态值(在此示例中为A12dk9-mds)。

=&

之间的动态内容

3 个答案:

答案 0 :(得分:2)

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

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

parse_str($string,$arr);
echo $arr['id']; // A12dk9-mds

答案 1 :(得分:1)

可以使用简单的正则表达式。

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

<强>解释

  • id=匹配id =
  • ([^&]*)除了与&amp;尽可能符号并返回
  • &与&amp;
  • 相匹配

只要您知道它们将始终位于=&之间,这将有效。

PHP代码:

$string = "id=A12dk9-mds&name=4950";
preg_match('/id=([^&]*)&/',$string, $answer);
print_r($answer[1]);

答案 2 :(得分:1)

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

$string = "id=A12dk9-mds&name=4950";
parse_str($string, $parsed);
echo $parsed['id'];