php - 文件名的正则表达式,没有 url?

标签 php regex url path filenames

我如何编写一个正则表达式来用它的文件夹路径替换任何文件名,但不匹配 url?并且不会匹配 in url?例如它应该匹配:

/images/something.png
content/scripts/myscript.js
image.gif
/1.jpg

但应该匹配:

http://www.google.com/images/something.png
www.google.com/scripts/myscript.js
http://site.com/?img=/image.png
http://site.com/?img=/scripts/somescript.js

谢谢...

最佳答案

我认为这是不可能的,因为这也是一个有效的目录名称?

www.google.com/scripts/myscript.js

我猜只有 http://可以被过滤。

我不知道你打算做什么,但也许你可以使用 file_exists() 来检查它是否是你文件系统上的文件。

this question告诉我们如何使用正则表达式过滤 url:

$text = preg_replace("
  #((http|https|ftp)://(\S*?\.\S*?))(\s|\;|\)|\]|\[|\{|\}|,|\"|'|:|\<|$|\.\s)#ie",
  "'<a href=\"$1\" target=\"_blank\">$3</a>$4'",
  $text
);

但它还声明您实际上应该使用 filter_var() 函数

var_dump(filter_var('example.com', FILTER_VALIDATE_URL);

关于php - 文件名的正则表达式,没有 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1660191/

相关文章:

php - 使用动态名称访问命名空间内的常量

javascript - 我如何使用 Javascript 来查找具有随机名称的 cookie?

python - 如何检查请求中的 URL 是否可下载

html - 幻灯片放映/更改背景图片

javascript - 这段 JavaScript 代码可以用 jQuery 重写吗?

javascript - 如何使用 Ajax 调用从 MySql 中拆分最大的数组?

android sqlite 和正则表达式

ruby-on-rails - 在 Rails 中使用自定义 Controller 时从 URL 获取资源名称

php - 基于 Yii 的 CMS?

php - 如何在 PHP 中使用正则表达式从指定字符串中过滤 Mac 地址?