javascript - 如何匹配 url 中可以以查询字符串结尾的文件扩展名?

标签 javascript php regex

我想匹配以下所有 URL 中的文件扩展名到问号。所以 URL #4 会匹配“file.pdf”中的 pdf,但不会匹配“otherfile.exe”中的“exe”。

http://www.someplace.com/directory/file.pdf
http://www.someplace.com/directory/file.pdf?otherstuff=true
http://www.someplace.com/directory/file.pdf?other=true&more=false
http://www.someplace.com/directory/file.pdf?other=true&more=false&value=otherfile.exe

我该怎么做?

我试过了,但是没用:

([^\.]+)(\?|[^\?]$)+

最佳答案

这就是我要使用的版本

/\w+\.[A-Za-z]{3,4}(?=\?|$)/

这是一个工作版本:

http://regex101.com/r/sY2fR0/1

使用前瞻性吗?或者字符串的结尾 (?=\?|$) 然后你可以匹配它后面的内容。

$re = "/\\w+\\.[A-Za-z]{3,4}(?=\\?|$)/"; 
$str = "http://www.someplace.com/directory/file.pdf?other=true&more=false&value=otherfile.exe\n\n"; 

preg_match($re, $str, $matches);

关于javascript - 如何匹配 url 中可以以查询字符串结尾的文件扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858752/

相关文章:

javascript - 检查 HTML select 元素是否为空

javascript - 如何使用 gulp-serve 为构建目录之外的组件提供服务

javascript - 访问循环外的对象(javascript)

php - 单元测试oAuth2授权码

python - 为什么 pyinputplus 中的allowRegexes关键字允许在pyip.inputNum(allowRegexes=[r'(C)+'])中使用ABC?

PHP 正则表达式 : what is "class at offset 0"?

regex - 如何转义 CSV 中的双引号?

javascript - 来自react-router-dom的<Link>不会改变URL

php - 使用 PHP 解析 HTML 添加类名

php - 如何在 Doctrine 2 中自动刷新?