使用正则表达式搜索链接

时间:2013-10-30 10:02:19

标签: php regex

我是正则表达的新手。

我有这样的文字:

$text =
'<ul style="list-style:none;">
  <li>
      <a href="files/docs/qwe.xls" target="_blank">Link1</a>
  </li>
  <li>
      <a href="files/docs/ere.xls" target="_blank">Link2</a>
  </li>
  <li>
      <a href="files/docs/123.xls" target="_blank">Link3</a>
  </li>
</ul>';

使用正则表达式我想得到这个数组:

$filePath[0] = "files/docs/qwe.xls";
$fileName[0] = "Link1";
$filePath[1] = "files/docs/ere.xls";
$fileName[1] = "Link2";
$filePath[2] = "files/docs/123.xls";
$fileName[2] = "Link3";

我该怎么做?

感谢。

3 个答案:

答案 0 :(得分:2)

您需要简单的正则表达式

检查此代码

 $match = array();
 preg_match_all('#<a href="(.*?)">(.*?)</a>#sm', $text, $match);
 print_r($match)

(.*?) - 意味着一切都不贪婪

答案 1 :(得分:0)

使用

$res = array();
preg_match_all('/href="(.+?)".*?>(.+?)<\/a>/ims', $text, $res);
var_dump($res);

答案 2 :(得分:0)

使用外观,它们可用于检查您要查找的字符串之前或之后是否存在某些内容。以下是它的工作原理:

/(?<=href=")[^"]*(?=")/

这就是它的含义:

/开始 (?<=href=")前面有href=" [^"]*任何非"个字符的提名者 (?=")后跟"
/结束