Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript字符串使用多个分隔符拆分,同时保留分隔符_Javascript_Regex_Split - Fatal编程技术网

JavaScript字符串使用多个分隔符拆分,同时保留分隔符

JavaScript字符串使用多个分隔符拆分,同时保留分隔符,javascript,regex,split,Javascript,Regex,Split,我想在JavaScript中使用多个分隔符分割字符串,同时保留分隔符。 我用这个正则表达式试过了,但是我得到了我不感兴趣的匹配 “id:123 name:test pumpe desc:pumpe p123”。拆分(/(?=(id:))|(?=(name:))|(?=(desc:)))/gi) 我得到的输出: [“id:123”,未定义,“name:”,未定义,“name:test pumpe”,未定义,未定义,“desc:”,“desc:pumpe p123”] 我想要的输出: [“id:12

我想在JavaScript中使用多个分隔符分割字符串,同时保留分隔符。 我用这个正则表达式试过了,但是我得到了我不感兴趣的匹配

“id:123 name:test pumpe desc:pumpe p123”。拆分(/(?=(id:))|(?=(name:))|(?=(desc:)))/gi)

我得到的输出:

[“id:123”,未定义,“name:”,未定义,“name:test pumpe”,未定义,未定义,“desc:”,“desc:pumpe p123”]

我想要的输出:

[“id:123”、“name:test pumpe”、“desc:pumpe p123”]


我尝试用正则表达式进行一点明文处理,但无法获得所需的输出。

实际要分割的分隔符是空格,具体来说,是后跟
名称:
id:
描述:
的空格

按照此逻辑,可以构造此正则表达式:

/ (?=name:|id:|desc)/i
(注意初始空格)

请在此处尝试:


console.log(“id:123 name:test pumpe desc:pumpe p123.split(/(?=name:| id:| desc)/i))
实际要拆分的分隔符是空格,具体来说,是后跟
name:
id:
desc:
的空格

按照此逻辑,可以构造此正则表达式:

/ (?=name:|id:|desc)/i
(注意初始空格)

请在此处尝试:


console.log(“id:123 name:test pumpe desc:pumpe p123.split(/(?=name:| id:| desc)/i))
您正在查找任何遵循模式的内容
[name:|[desc:|[id:][id:
,因此简化您的正则表达式:


console.log(“id:123 name:test pumpe desc:pumpe p123”。拆分(/(?=name:| id:| desc:)/i))您正在寻找符合模式的任何内容,因此请简化您的正则表达式:


console.log(“id:123 name:test pumpe desc:pumpe p123”。拆分(/(?=name:| id:| desc:)/i))您可以查找空格,后面不是空格和冒号


console.log(“id:123 name:test pumpe desc:pumpe p123”)。拆分(/\s(?=\s+?:)/)您可以查找空格,后面不是空格和冒号


console.log(“id:123 name:test pumpe desc:pumpe p123”)。拆分(/\s(?=\s+?:)/)
如果密钥名未知,您可以在每个
\s
处执行
拆分
,后面跟着
\w+:

()

const splits=“id:123 name:test pumpe desc:pumpe p123”。拆分(/\s+(?=\w+:)/)

console.log(拆分)
如果键名未知,您可以在每个
\s
处执行
拆分
,后面跟着
\w+:

()

const splits=“id:123 name:test pumpe desc:pumpe p123”。拆分(/\s+(?=\w+:)/)

console.log(splits)
.split(/\s+(?=(?:id | name | desc):)/i)
.split(/\s+(?=(?:id | name | desc):)/i)
?在
中使用split code>.split时,不需要
g
修饰符,
split()
在字符串中的所有出现处都拆分。在
中使用时,不需要
修饰符,
split()。