如何使用 preg_grep 查找 url

Posted

技术标签:

【中文标题】如何使用 preg_grep 查找 url【英文标题】:How to use preg_grep to find urls 【发布时间】:2015-01-07 12:38:05 【问题描述】:

在我的项目中,我有多个 .csv 文件,其域名如 1www.abc.com.csv2www.abc.com.csv、或 1m.xyz.com.au.csv、2m.blackburneinvest.com.au.csv3m.blackburneinvest.com.au.csv

我想用 preg_grep 在数组中搜索模式*.csv(不包括数字)。

到目前为止我已经尝试过了

<?php
echo "<pre>";
$files = glob("*.csv");//gets list of all the .csv file names in dir
foreach ($files as $key => $value) 

    $pattern = preg_split("/(\d+)/", $value);//Spilts Number from rest file name
    $fl_array = preg_grep($pattern[1], $files);

print_r($fl_array);
?>

但是有了这个我得到一个错误说

Warning:  preg_grep(): Delimiter must not be alphanumeric or backslash

如何编辑? 谢谢

【问题讨论】:

试试这样的:$fl_array = preg_grep("/" . $pattern[1] . "/", $files); 这对你有用吗? 【参考方案1】:

使用这个:

preg_grep(sprintf('/%s/', preg_quote($pattern[1])), $files);

【讨论】:

【参考方案2】:

双引号内的字符串正在被评估,"\d" 毕竟不是你所期望的。

要么使用单引号:

preg_split('/(\d+)/' ...

或者在d前面转义反斜杠:

preg_split("/(\\d+)/" ...

【讨论】:

以上是关于如何使用 preg_grep 查找 url的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中使用 preg_grep() 查找字符串之前或之后的字符

preg_grep 输出部分匹配

PHP preg_grep 多文件

Preg_grep 模式在特定事物之间获取某些东西

如何在方括号中查找单词并使用 php 转换为动态 url?

如何在 Python 中使用引用者和 href 查找 url?