此问题已在此处有答案:
Regular expression to stop at first match(9个回答)
6天前关闭。
我需要匹配任何歌曲标题,以下是我的测试:
ar-tist - title-o.\fvc / the song.mp3
Nulbarich - TOKYO / THE FIRST TAKE
James Hersey – Don‘t Need Me feat. narou
KEIJU – I Get Lonely (Official Video) / Album "T.A.T.O."
Hiplin / Night Cruising(Official Lyric Video)
我有这个regex:
^(.+)\s+[–\-\/]\s+(.+)
但问题是它从匹配字符串的末尾反向拆分/–-
,idk是否清晰,例如我需要拆分ar-tist - title-o.\fvc / the song.mp3
如下:
第一组-ar-tist
第二组-title-o.\fvc / the song.mp3
但我得到了这个
第一组-ar-tist - title-o.\fvc
第二组-the song.mp3
我是这样修正的:
^(.+)\s+–\s+(.+)|^(.+)\s+-\s+(.+)|^(.+)\s+\/\s+(.+)
但是这个正则表达式的问题是它现在创建了6个组,我只需要2个
regexr.com/7clh7
1条答案
按热度按时间nwo49xxi1#
尝试在Regex中使用
?
(Lazy quantifier):^(.+?)\s+[\/–\-]\s+(.+)
这允许它尽可能少地匹配。省略它意味着贪婪匹配(尽可能多地匹配,如果需要则返回)。