繁体   English   中英

使用正则表达式搜索链接

[英]Search link with regular expression

我是新来的正则表达式。

我有这段文字:

$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";

我该怎么做?

谢谢。

您需要简单的正则表达式

检查此代码

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

(.*?) -表示所有内容都不是贪婪的

采用

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

使用环顾四周,它们对于检查要查找的字符串之前或之后是否有用是很有用的。 下面是它的工作原理:

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

这是什么意思:

/开始
(?<=href=")前面加上href="
[^"]*任何非"字符
(?=")后跟"
/结束

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM