如何从动态链接中获取价值

时间:2015-02-05 04:43:34

标签: php regex

我有一些像这样的动态链接

<a href="names.php?action=names&amp;name=1">jehan</a> 
<a href="names.php?action=names&amp;name=2">roy</a>

我想从这些链接中提取jehan和roy。我试过这个

preg_match_all("'(.*?)</a>'", $check, $match);

我不知道如何正确地做到这一点:(

3 个答案:

答案 0 :(得分:0)

/<a [^>]+>(.*)<\/a>/

http://regexr.com/3abv0

有更优雅的方法可以解决这个问题。例如Simple HTML DOM

答案 1 :(得分:0)

这是我用来解析HTML链接中的文本的方法。我有任何进一步的HTML解析需求,我会切换到PHP的解析库。

<强>正则表达式

(?<=\>)\w+(?=\<\/a\>)

REGEX101

<强>用法

$re = "/(?<=\\>)\\w+(?=\\<\\/a\\>)/m"; 
$str = "<a href=\"names.php?action=names&amp;name=1\">jehan</a> \n<a href=\"names.php?action=names&amp;name=2\">roy</a>"; 

preg_match_all($re, $str, $matches);

答案 2 :(得分:0)

<a [^>]*>\K[^<]*(?=<\/a>)

你可以尝试这个来获取链接。参见演示。

https://www.regex101.com/r/oI2jF9/3

$re = "/<a [^>]*>\\K[^<]*(?=<\\/a>)/m";
$str = "<a href=\"names.php?action=names&amp;name=1\">jehan</a> \n<a href=\"names.php?action=names&amp;name=2\">roy</a>";

preg_match_all($re, $str, $matches);