正则表达式在meta中查找文本

时间:2016-08-07 11:09:01

标签: regex

使用PHP查找此变量中“URL”中“session”内容的正则表达式是什么:

$var = "<meta http-equiv='refresh' content='0; URL=/game/index.php?page=overview&session=9efae87dd67&lgn=1'>"

谢谢:)

4 个答案:

答案 0 :(得分:1)

真的,使用DOM解析器合并和正则表达式,如下所示:

<?php

$data = <<<DATA
<meta http-equiv='refresh' content='0; URL=/game/index.php?page=overview&session=9efae87dd67&lgn=1'>
<body/>
DATA;

$previous_value = libxml_use_internal_errors(TRUE);

$dom = new DOMDocument();
$dom->loadHTML($data);

$xpath = new DOMXPath($dom);

$meta = $xpath->query("//meta")->item(0);

$regex = '~session=\K[^&]+~';
preg_match($regex, $meta->getAttribute("content"), $session);
echo $session[0];

libxml_clear_errors();
libxml_use_internal_errors($previous_value);

?>

<小时/> 请参阅a demo on ideone.com

答案 1 :(得分:0)

使用此正则表达式:(?<=&session=)[\da-zA-Z]*

您还需要在PHP代码中转义特殊的html字符。

答案 2 :(得分:0)

(?:session=)\w+

虽然我觉得使用捕获括号更容易:

session=(\w+)

在最后一种情况下,您需要访问匹配号码。 1

答案 3 :(得分:0)

这是你的正则表达式。

touch(filename);