Javascript Regex:Extract";关键词:价值;(无分隔符) 您能否仅用一个正则表达式提取这些“key:value”对?
结果我想:Javascript Regex:Extract";关键词:价值;(无分隔符) 您能否仅用一个正则表达式提取这些“key:value”对?,javascript,regex,string,Javascript,Regex,String,结果我想: "a" => "xyz" "b" => "pqr st" "c" => "lm no p" 我的尝试(使用两个正则表达式) 我得到的结果是: "a" => "xyz " "b" => "pqr st " "c" => "lm no p" 那么,这只能用一个正则表达式完成吗? 使用正则表达式模式/(\w+):\s*([^:]+)(?=\s |$)/g 请参见 要修剪空白字符,请使用regex模式 请参见 请参见您可以尝试此功能 var
"a" => "xyz"
"b" => "pqr st"
"c" => "lm no p"
我的尝试(使用两个正则表达式) 我得到的结果是:
"a" => "xyz "
"b" => "pqr st "
"c" => "lm no p"
那么,这只能用一个正则表达式完成吗?
使用正则表达式模式/(\w+):\s*([^:]+)(?=\s |$)/g
请参见
要修剪空白字符,请使用regex模式
请参见
请参见您可以尝试此功能
var s = 'a: xyz b: pqr st c: lm no p';
var r = /(?:\s|^)(\w+):\s*(.*?)(?=\s+\w+:|$)/g;
var m;
while ((m = r.exec(s))) {
console.log('"' + m[1] + '" => "' + m[2] + '"');
}
正则表达式:
不,b中没有“st”或c中没有“p”。@GrantShield-再次点击演示链接。为我工作@GrantShield-我已经发布了一个更新版本,可以修剪空格字符,但是如果密钥超过一个字符,它就不起作用了。太棒了Ω超级!非常感谢。几乎完美,谢谢!是否仍要修剪值中的空白?
/(?:(?!(?:a | b | c):)+\w/g
结尾的\w将修剪空白。此选项允许多字符键(这很好!),但某些值之前有空白。可以修剪吗?/(?:\s| ^)(\w+::\s*(.*)(=\s+\w+:|$)/g代码>错误!-1分钟前,我在上面的评论中发布了正确的代码。用那个!这一个似乎没有捕获任何组。
"a" => "xyz "
"b" => "pqr st "
"c" => "lm no p"
/(\w+):\s*([^:]*\S)\s*(?=\w+:|$)/g
/\b(\w+):\s*([^:]*\S)\b\s*(?=\w+:|$)/g
var s = 'a: xyz b: pqr st c: lm no p';
var r = /(?:\s|^)(\w+):\s*(.*?)(?=\s+\w+:|$)/g;
var m;
while ((m = r.exec(s))) {
console.log('"' + m[1] + '" => "' + m[2] + '"');
}
/(?:.(?!(?:a|b|c):))+\w/g