正则表达式表达式以0开头并以]结尾的字符串?

时间:2019-02-27 06:34:36

标签: javascript arrays json regex string

我正在尝试使用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]\.(.*)\]$

任何帮助将不胜感激!谢谢!

4 个答案:

答案 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.parsemap-到目前为止,它比正则表达式要好:

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)

您可以使用以下正则表达式:

(0.[0-9]+)*

尝试here