gpt4 book ai didi

regex - 正则表达式用于分割字符串

转载 作者:行者123 更新时间:2023-12-02 02:44:25 24 4
gpt4 key购买 nike

我找到了这个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-9]{4}).+?-(.+)\.(mkv|avi|mp4)

我们所需的输出在哪里。

电影的名称在第一个捕获组中:
(.+?)

其次是 .和第二组中的所需年份:
([0-9]{4})

接下来是所有其他内容,直到最后一个破折号,在这里我们有了最后的字眼:
(.+)

并且所需的扩展名在最后一个捕获组中:
(mkv|avi|mp4)

DEMO

测试

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);


enter image description here

关于regex - 正则表达式用于分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56333444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com