我想匹配以下所有 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/