如何使用JavaScript正则表达式拆分此文本?
我想拆分这段文字。我正试图用JavaScript正则表达式来实现这一点 (1) 真的没有。(2) 嗯哼。(3) 看哪,王子(4)是他天性中的关键人物,畏缩在他生命中女性的怜悯之下。(5) 看我,也许你想和我的女儿们聊天,教她们一些组合。(6) 毫无疑问你是最好的老师,陛下。(7) 例如,是我女儿教我现代世界的语言 我想把它解析成几组片段。我正在寻找这些结果之一如何使用JavaScript正则表达式拆分此文本?,javascript,regex,split,subtitle,video-subtitles,Javascript,Regex,Split,Subtitle,Video Subtitles,我想拆分这段文字。我正试图用JavaScript正则表达式来实现这一点 (1) 真的没有。(2) 嗯哼。(3) 看哪,王子(4)是他天性中的关键人物,畏缩在他生命中女性的怜悯之下。(5) 看我,也许你想和我的女儿们聊天,教她们一些组合。(6) 毫无疑问你是最好的老师,陛下。(7) 例如,是我女儿教我现代世界的语言 我想把它解析成几组片段。我正在寻找这些结果之一 [ [1,“真的没有。”], [2,“嗯嗯”。], [3,“看,王子”], ] [ {id:1,文本:“真的没有。”}, {id:2,文
[
[1,“真的没有。”],
[2,“嗯嗯”。],
[3,“看,王子”],
]
[
{id:1,文本:“真的没有。”},
{id:2,文本:“嗯哼。”},
{id:3,文本:“看,王子”},
]
我使用这种模式
/\([0-9])\{1,3}(+?)\(/g
你能帮我一下吗?我应该用什么样的方式来正确地分割文本
提前感谢您!您可以使用javascript中的regex和string.matchAll函数来执行您想要的操作
const str=`(1)真的不。(2)嗯嗯。(3)看,王子(4)是他天生的关键,在他生命中的女人的怜悯下畏缩。(5)看我,也许你想和我的女儿们聊天,教她们一些组合。(6)毫无疑问,你是最好的老师,陛下。(7)例如,是我女儿教我现代世界的语言;
让数组=[…str.matchAll(/\([0-9]+)\)\s*(*?)\s*(?=$\\()/g)].map(a=>[+a[1],a[2]]
console.log(array)
您可以在javascript中使用regex和string.matchAll函数来执行您想要的操作
const str=`(1)真的不。(2)嗯嗯。(3)看,王子(4)是他天生的关键,在他生命中的女人的怜悯下畏缩。(5)看我,也许你想和我的女儿们聊天,教她们一些组合。(6)毫无疑问,你是最好的老师,陛下。(7)例如,是我女儿教我现代世界的语言;
让数组=[…str.matchAll(/\([0-9]+)\)\s*(*?)\s*(?=$\\()/g)].map(a=>[+a[1],a[2]]
log(数组)
而不是匹配(
您可以断言它或字符串的结尾
这部分\){1,3}
表示重复结束括号1-3次
如果要匹配1-3位数字:
\(([0-9]+)\)\s*(.*?)\s*(?=$|\()
匹配\(
(
在组1中捕获1+个数字(由代码中的([0-9]+)
表示)m[1]
匹配\)
)
匹配可选空白字符\s*
在组2中捕获尽可能少的字符(在代码中用(.*)
表示)m[2]
匹配可选空格chas\s*
断言字符串的结尾或右侧的(?=$\124;\()
)(
const regex=/\([0-9]+)\\s*(*?)\s*(?=$\124;\()/g;
const str=`(1)真的不。(2)嗯哼。(3)瞧,王子(4)是他天生的关键,在他生命中的女人的怜悯下畏缩。(5)看我,也许你想和我的女儿们聊天,教她们一些组合。(6)毫无疑问,你是最好的老师,陛下。(7)例如,是我女儿教我现代世界的语言;
console.log(Array.from(str.matchAll(regex),m=>[m[1],m[2]]);
而不是匹配(
可以断言它或字符串的结尾
这部分\){1,3}
表示重复结束括号1-3次
如果要匹配1-3位数字:
\(([0-9]+)\)\s*(.*?)\s*(?=$|\()
匹配\(
(
在组1中捕获1+个数字(由代码中的([0-9]+)
表示)m[1]
匹配\)
)
匹配可选空白字符\s*
在组2中捕获尽可能少的字符(在代码中用(.*)
表示)m[2]
匹配可选空格chas\s*
断言字符串的结尾或右侧的(?=$\124;\()
)(
const regex=/\([0-9]+)\\s*(*?)\s*(?=$\124;\()/g;
const str=`(1)真的不。(2)嗯哼。(3)瞧,王子(4)是他天生的关键,在他生命中的女人的怜悯下畏缩。(5)看我,也许你想和我的女儿们聊天,教她们一些组合。(6)毫无疑问,你是最好的老师,陛下。(7)例如,是我女儿教我现代世界的语言;
console.log(Array.from(str.matchAll(regex),m=>[m[1],m[2]]);
…一种基于以及使用和
//请参阅[https://regex101.com/r/r39BoJ/1]
常量regX=(/\(?\d+)\s*(?*?)\s*(?=$\()/g);
const text=“(1)真的不。(2)嗯嗯。(3)看,王子(4)是他天生的关键,在他生命中的女人的怜悯下畏缩。(5)看我,也许你想和我的女儿们聊天,教她们一些组合。(6)毫无疑问,你是最好的老师,陛下。(7)例如,是我女儿教我现代世界的语言。”
console.log([
…text.matchAll(regX)
].地图(
({groups:{id,text}})=>({id:Number(id,text})
)
);
.as控制台包装{min height:100%!important;top:0;}
…一种基于以及基于使用和
//请参阅[https://regex101.com/r/r39BoJ/1]
常量regX=(/\(?\d+)\s*(?*?)\s*(?=$\()/g);
const text=“(1)真的不。(2)嗯哼。(3)瞧,王子(4)是他天性中的关键,在他生命中的女人的怜悯下畏缩。(5)看我,也许你想和我的女儿们聊天,教她们一些组合。(6)毫无疑问,你是最好的老师,陛下