我发现了这个Answer,了解如何使用RegExp来修饰电影名称,它可以正常工作,但并非我真正需要的。
输入字符串为:2001.A.Space.Odyssey.1968.720p.BluRay.DD5.1.x264-LiNG.mkv
答案中使用的正则表达式:^(.+).(\d{4}).+.(mp4|avi|mkv)$
和output是:
2001.A.Space.Odyssey
1968
mkv
我所需要的如下:
2001.A.Space.Odyssey
1968
LiNG
mkv
我的尝试是:^(.+).(\d{4}).+([^_]).(mp4|avi|mkv)$
但output是:
2001.A.Space.Odyssey
1968
G
mkv
我如何获得LiNG
而不是G
?
答案 0 :(得分:1)
此表达式具有四个捕获组:
(.+?)\.([0-9]{4}).+?-(.+)\.(mkv|avi|mp4)
我们期望的输出在哪里。
电影的名称在第一个捕获组中:
(.+?)
后跟.
和第二组中的期望年份:
([0-9]{4})
紧随其后的是直到最后一个破折号的所有其他内容,在这里我们有了最后一个字:
(.+)
,所需的扩展名位于最后一个捕获组中:
(mkv|avi|mp4)
const regex = /(.+?)\.([0-9]{4}).+?-(.+)\.(mkv|avi|mp4)/;
const str = `2001.A.Space.Odyssey.1968.720p.BluRay.DD5.1.x264-LiNG.mkv`;
const subst = `$1\n$2\n$3\n$4`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);