【发布时间】:2021-03-01 16:30:27
【问题描述】:
我正在尝试将此字符串拆分为某种结构,
20:33:15 From Deekshitha Oku : Me too
进入
{ time: "20:33:15", name: "Deekshitha Oku", message: "Me too" }
为此,我写了一个正则表达式,
(([0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])(.*?)(From)\s(.*?).:\s(.*?).+
但这不是我所期望的,它在这里连接。我期望的是这样的,
[
"20:33:15",
"Deekshitha Oku",
"Me too"
]
const match = "20:33:15 From Deekshitha Oku : Me too".match(/(([0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])(.*?)(From)\s(.*?).:\s(.*?).+/);
console.log(match);
这个正则表达式有什么问题,我尝试了很多不同的方法:(
【问题讨论】:
-
您的正则表达式中有太多的捕获组。每次使用一组新括号时,您都会创建一个新的捕获组,从而在您的正则表达式结果中创建一个新结果。相反,请使用以
(?:开头的非捕获组,除非您确实希望将该捕获组中的内容返回给您。
标签: javascript html regex