Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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 - Fatal编程技术网

Javascript 正则表达式帮助从字符串中提取值

Javascript 正则表达式帮助从字符串中提取值,javascript,regex,Javascript,Regex,我有一个类似javascript的字符串 "some text @[14cd3:+Seldum Kype] things are going good for @[7f8ef3:+Kerry Williams] so its ok" 我想从中提取这两个人的姓名和id。因此,数据如下: [ { id: 14cd3, name : Seldum Kype}, { id: 7f8ef3, name : Kerry Williams} ] 你如何使用正则表达式来提取这个 请帮助从组索引1获取id

我有一个类似javascript的字符串

"some text @[14cd3:+Seldum Kype] things are going good for @[7f8ef3:+Kerry Williams] so its ok"
我想从中提取这两个人的姓名和id。因此,数据如下:

[ { id: 14cd3, name : Seldum Kype},
  { id: 7f8ef3, name : Kerry Williams} ]
你如何使用正则表达式来提取这个


请帮助

从组索引1获取id,从组索引2获取名称

@\[([a-z\d]+):\+([^\[\]]+)\]

说明:

  • @
    匹配文字符号
  • \[
    匹配文字符号
  • ([a-z\d]+)
    捕获一个或多个字符小写字母或数字
  • :\+
    按字面意思匹配
    :+
  • ([^\[\]]+)
    捕获任何字符,但不能一次或多次捕获
    [
    ]
    中的字符
  • \]
    文字符号

尝试以下操作,关键是正确转义保留的特殊符号:

@\[([\d\w]+):\+([\s\w]+)\]
var text=“一些文本@[14cd3:+Seldum Kype]事情正在发展”+
“对@[7f8ef3:+Kerry Williams]有好处,所以没关系”
var data=text.match(/@\[.+?\]/g).map(函数(m){
var match=m.substring(2,m.length-1);
返回{id:match[0],name:match[1]};
})
//=>[{id:'14cd3',name:'Seldum Kype'},
//{id:'7f8ef3',名称:'Kerry Williams'}]
//演示
document.getElementById('output').innerText=JSON.stringify(数据)

最后一个
+
做什么?重复上一个令牌一次或多次。