我是正则表达式的新手。
我有这段文字:
$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="
[^"]*
任何非"
字符
的命名 (?=")
后跟"
/
结束