Используйте регулярные выражения, чтобы выбрать строку за строкой вместо каждой строки сразу? - PullRequest
2 голосов
/ 16 апреля 2019

Я хочу изменить плейлисты и удалить все между и включая прямые косые черты.

Сейчас у меня работает это регулярное выражение:

\/[^\]]*\/\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 ]

5 голосов
/ 16 апреля 2019

Я обновил ваше регулярное выражение в:

^\/[^\n]*\/

После замены ничем это дает:

#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/16

3 голосов
/ 16 апреля 2019

Попробуйте это:

\/.*\/

полное регулярное выражение должно быть таким, включающим глобальную опцию:

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 голосов
/ 16 апреля 2019

Это регулярное выражение должно решить проблему:

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

Соответствует только именам файлов.

Рабочий пример : https://regex101.com/r/FobLOT/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...