【问题标题】:Regex expression for strings starting with 0. and ending with ]?以 0. 开头并以 ] 结尾的字符串的正则表达式?
【发布时间】:2019-07-20 19:36:24
【问题描述】:

我正在尝试使用 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 开头的数字从字符串的开头(或行的开头)开始,所以^ 锚肯定会确保没有匹配?

标签: javascript arrays json regex string


【解决方案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);

【讨论】:

    【解决方案2】:

    使用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);

    【讨论】:

      【解决方案3】:

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

      (0.[0-9]+)*

      试试here

      【讨论】:

      • 你应该使用 0\。而不是 0。否则您将匹配其他字符,例如 0,或每个其他字符
      【解决方案4】:

      ^ 匹配字符串的开头,在您的例子中是[[。 您可以尝试使用正则表达式匹配/(0\.\d+)/g

      ,而不是拆分

      所以

      yourString.match(/0\.\d+)/g)
      

      将返回与给定正则表达式匹配的子字符串数组

      【讨论】:

        猜你喜欢
        • 2013-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-07
        • 1970-01-01
        • 1970-01-01
        • 2015-04-27
        • 1970-01-01
        相关资源
        最近更新 更多