我正在尝试使用Javascript分割此格式的字符串:
[[11,0.8979098920018053],[12,0.8974489978770909],[13,0.8969923414600217],[14,0.8965394942578806],[15,0.8960900097695623],[16,0.8956434229475816],[17,0.8951992496549722],[18,0.8947569861181227 ],[19,0.8943161083767102]
分成仅包含百分比值的单独数组。也就是说,我想要一个像这样的数组:
[0.8979098920018053、0.8974489978770909、0.8969923414600217等...]
从0开始到]结束的正则表达式是什么?这是我所拥有的,但无法正常工作:
^[0]\.(.*)\]$
任何帮助将不胜感激!谢谢!
答案 0 :(得分:1)
考虑使用JSON.parse
到.map
到仅包含每个子数组第二项的数组中,它将比使用正则表达式更加优雅:
const input = `[[11, 0.8979098920018053], [12, 0.8974489978770909], [13, 0.8969923414600217], [14, 0.8965394942578806], [15, 0.8960900097695623], [16, 0.8956434229475816], [17, 0.8951992496549722], [18, 0.8947569861181227], [19, 0.8943161083767102]]`;
const arr = JSON.parse(input);
const output = arr.map(([, percentage]) => percentage);
console.log(output);
答案 1 :(得分:0)
使用JSON.parse
和map
-到目前为止,它比正则表达式要好:
const string = `[[11, 0.8979098920018053], [12, 0.8974489978770909], [13, 0.8969923414600217], [14, 0.8965394942578806], [15, 0.8960900097695623], [16, 0.8956434229475816], [17, 0.8951992496549722], [18, 0.8947569861181227], [19, 0.8943161083767102]]`;
const parsed = JSON.parse(string);
const percentageValues = parsed.map(p => p[1]);
console.log(percentageValues);
答案 2 :(得分:0)
^
与字符串的开头匹配,在您的情况下为[[
。
您可以尝试对/(0\.\d+)/g
所以
yourString.match(/0\.\d+)/g)
将返回与给定正则表达式匹配的子字符串数组
答案 3 :(得分:0)