使用正则表达式逐行而不是一次选择每一行?

时间:2019-04-16 06:11:58

标签: regex

我想更改播放列表并删除斜杠之间的所有内容,包括正斜杠。

现在我正在使用此正则表达式:

\/[^\]]*\/\W*

将其转换为

/Users/jimmy/Music/iTunes/iTunes Media/Music/Godflesh/Streetcleaner/01 Like Rats.m4a

对此:

01 Like Rats.m4a

但是,我想要这个:

#EXTM3U
#EXTINF:314,Hey Man Nice Shot - Filter
/Users/jimmy/Music/iTunes/iTunes Media/Music/Filter/Short Bus/01 Hey Man Nice Shot.mp3
#EXTINF:173,Biscuits For Smut - Helmet
/Users/jimmy/Music/iTunes/iTunes Media/Music/Helmet/Betty/03 Biscuits For Smut.mp3
#EXTINF:267,Like Rats - Godflesh
/Users/jimmy/Music/iTunes/iTunes Media/Music/Godflesh/Streetcleaner/01 Like Rats.m4a

要被过滤后最终变成这样:

#EXTM3U
#EXTINF:314,Hey Man Nice Shot - Filter
01 Hey Man Nice Shot.mp3
#EXTINF:173,Biscuits For Smut - Helmet
03 Biscuits For Smut.mp3
#EXTINF:267,Like Rats - Godflesh
01 Like Rats.m4a

但是:

\/[^\]]*\/\W*

我最终得到了这个

#EXTM3U
#EXTINF:314,Hey Man Nice Shot - Filter
01 Like Rats.m4a

如何更改该正则表达式以不一次删除所有文本中正斜杠之间的所有内容?我只希望它逐行完成。

这里正在起作用:

https://regex101.com/r/RhdWA5/13

3 个答案:

答案 0 :(得分:5)

我已将您的正则表达式更新为:

No scheduled commands are ready to run.

一无所获后,它给出:

^\/[^\n]*\/

演示:https://regex101.com/r/RhdWA5/16

答案 1 :(得分:3)

尝试这个:

\/.*\/

完整的正则表达式应如下所示,启用全局选项:

new regExp(/\/.*\//ig)

并最终像这样:

#EXTM3U
#EXTINF:314,Hey Man Nice Shot - Filter
01 Hey Man Nice Shot.mp3
#EXTINF:173,Biscuits For Smut - Helmet
03 Biscuits For Smut.mp3
#EXTINF:267,Like Rats - Godflesh
01 Like Rats.m4a

我也以https://regex101.com/r/RhdWA5/17为例

答案 2 :(得分:2)

此正则表达式可以解决问题:

[^\/]+\.[\w\d]+

它仅与文件名匹配。

工作示例https://regex101.com/r/FobLOT/1