Regex 使用正则表达式从字符串中提取文件名

Regex 使用正则表达式从字符串中提取文件名,regex,Regex,我有一个从URL中提取的字符串,我正试图清理它。下面是字符串: /Portals/0/Documents/MFG_Datasheet_Work%20and%20Asset.pdf?ver=2018-03-18-111121-810 我正在尝试提取/Documents/之后的文件名,并删除“?ver=”及其后面的所有内容,以便只拉入PDF文件名。 let str=“/Portals/0/Documents/MFG_Datasheet_Work%20和%20Asset.pdf?ver=2018-0

我有一个从URL中提取的字符串,我正试图清理它。下面是字符串:

/Portals/0/Documents/MFG_Datasheet_Work%20and%20Asset.pdf?ver=2018-03-18-111121-810
我正在尝试提取/Documents/之后的文件名,并删除“?ver=”及其后面的所有内容,以便只拉入PDF文件名。

let str=“/Portals/0/Documents/MFG_Datasheet_Work%20和%20Asset.pdf?ver=2018-03-18-111121-810”
console.log(str.match(/.*\/([^?]+).*/)
说明:

.*/        # anything up to the last slash
([^?]+)    # store anything thereafter in a group,
           # up until an optional question mark
.*         # optional rest (question mark and everything thereafter)
根据实现语言的不同,您想要的替换值可能是
$1
(例如,在Java中)

.*/        # anything up to the last slash
([^?]+)    # store anything thereafter in a group,
           # up until an optional question mark
.*         # optional rest (question mark and everything thereafter)