如何使用正则表达式将Javascript中的此字符串解析为JSON

玛南·沙玛(Manan Sharma)

我有一个如下所示的控制台字符串:

2021-01-06T09:06:05.541212726Z D saveGarment: Function execution took 736 ms, finished with status code: 204
2021-01-06T09:06:10.844901031Z D saveGarment: Function execution started
2021-01-06T09:06:16.153Z ? saveGarment: CORE
2021-01-06T09:06:18.134508823Z D saveGarment: Function execution took 7470 ms, finished with status code: 200
2021-01-06T09:06:19.546Z ? saveGarment: { message: 'fail' }

我想将此字符串解析为JSON,以便它看起来像这样:

{
  {
    date: '2021-01-06'
    time: '09:06:05'
    type: 'D'
    function: 'saveGarment'
    message: 'Function execution took 736 ms'
    statusCode: 204
  },
}
张凯文

使用Regex似乎有点困难,我只是使用字符串操作来处理它,这是代码:

let consoleLog = `2021-01-06T09:06:05.541212726Z D saveGarment: Function execution took 736 ms, finished with status code: 204
2021-01-06T09:06:10.844901031Z D saveGarment: Function execution started
2021-01-06T09:06:16.153Z ? saveGarment: CORE
2021-01-06T09:06:18.134508823Z D saveGarment: Function execution took 7470 ms, finished with status code: 200
2021-01-06T09:06:19.546Z ? saveGarment: { message: 'fail' }`;

let logs = consoleLog.split('\n');
let results: any = [];
console.clear();
logs.forEach(log => {
    let twoParts = splitFirstCh(log, ' ');
    let dateTime = twoParts[0];
    let twoParts1 = splitFirstCh(twoParts[1], ' ');
    let typeStr = twoParts1[0];
    let twoParts2 = splitFirstCh(twoParts1[1], ':');
    let message = '', statusCode = '';
    if (twoParts2[1].indexOf('status code') > -1) {
        message = splitLastCh(twoParts2[1], ',')[0];
        statusCode = splitLastCh(twoParts2[1], ':')[1].trim();
    } else if (twoParts2[1].indexOf('{') > -1) {
        message = splitLastCh(twoParts2[1], ':')[1].replace('}', '').trim();
        statusCode = '';
    } else {
        message = twoParts2[1].trim();
        statusCode = '';
    }

    let functionStr = twoParts2[0];
    results.push({
        date: new Date(dateTime).toLocaleDateString(),
        time: new Date(dateTime).toLocaleTimeString(),
        'type': typeStr,
        'function': functionStr,
        message: message,
        statusCode: statusCode
    });
});

console.log(results);

function splitFirstCh(data: string, ch: string) {
    return [data.substr(0, data.indexOf(ch)), data.substr(data.indexOf(ch) + 1)];
}

function splitLastCh(data: string, ch: string) {
    return [data.substr(0, data.lastIndexOf(ch)), data.substr(data.lastIndexOf(ch) + 1)];
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用正则表达式在 Python 中解析此字符串

来自分类Dev

如何使用正则表达式解析Javascript中特定格式的字符串?

来自分类Dev

如何使用正则表达式将此字符串解析为标记

来自分类Dev

用 html 中的属性值解析 JSON 字符串的 Javascript 正则表达式

来自分类Dev

如何使用正则表达式从字符串中解析出日期?

来自分类Dev

如何使用正则表达式中的sscanf()解析字符串?

来自分类Dev

使用正则表达式解析此字符串?

来自分类Dev

如何将正则表达式模式存储为正则表达式对象或字符串?

来自分类Dev

如何将正则表达式模式存储为正则表达式对象或字符串?

来自分类Dev

使用正则表达式解析字符串

来自分类Dev

使用正则表达式解析字符串

来自分类Dev

如何使用字符串中的[i]用正则表达式解析字符串

来自分类Dev

如何使用Python处理JSON文件中的正则表达式字符串

来自分类Dev

如何使用正则表达式从Javascript中的字符串中提取数字

来自分类Dev

如何使用正则表达式在javascript中拆分字符串

来自分类Dev

如何使用正则表达式从Javascript中的字符串中提取数字

来自分类Dev

如何使用javascript正则表达式从字符串中获取域

来自分类Dev

PHP将字符串解析为带有正则表达式的数组

来自分类Dev

如何在OCaml中将字符串解析为正则表达式类型

来自分类Dev

此python代码如何使用正则表达式sub()和group()将字符串转换为camelCase?

来自分类Dev

如何在Java需要正则表达式中拆分此字符串?

来自分类Dev

如何在Oracle plsql中通过正则表达式处理此字符串

来自分类Dev

使用正则表达式顺序匹配正则表达式,而不是JavaScript中的字符串顺序

来自分类Dev

使用正则表达式将字符串分割为每个特殊字符

来自分类Dev

如何在emacs中使用正则表达式匹配此字符串?

来自分类Dev

如何使用正则表达式替换此字符串

来自分类Dev

如何创建正则表达式验证表达式以允许此字符串?

来自分类Dev

如何使用正则表达式从字符串中删除特定字符串

来自分类Dev

如何使用正则表达式解析字符串以排除特殊字符

Related 相关文章

  1. 1

    如何使用正则表达式在 Python 中解析此字符串

  2. 2

    如何使用正则表达式解析Javascript中特定格式的字符串?

  3. 3

    如何使用正则表达式将此字符串解析为标记

  4. 4

    用 html 中的属性值解析 JSON 字符串的 Javascript 正则表达式

  5. 5

    如何使用正则表达式从字符串中解析出日期?

  6. 6

    如何使用正则表达式中的sscanf()解析字符串?

  7. 7

    使用正则表达式解析此字符串?

  8. 8

    如何将正则表达式模式存储为正则表达式对象或字符串?

  9. 9

    如何将正则表达式模式存储为正则表达式对象或字符串?

  10. 10

    使用正则表达式解析字符串

  11. 11

    使用正则表达式解析字符串

  12. 12

    如何使用字符串中的[i]用正则表达式解析字符串

  13. 13

    如何使用Python处理JSON文件中的正则表达式字符串

  14. 14

    如何使用正则表达式从Javascript中的字符串中提取数字

  15. 15

    如何使用正则表达式在javascript中拆分字符串

  16. 16

    如何使用正则表达式从Javascript中的字符串中提取数字

  17. 17

    如何使用javascript正则表达式从字符串中获取域

  18. 18

    PHP将字符串解析为带有正则表达式的数组

  19. 19

    如何在OCaml中将字符串解析为正则表达式类型

  20. 20

    此python代码如何使用正则表达式sub()和group()将字符串转换为camelCase?

  21. 21

    如何在Java需要正则表达式中拆分此字符串?

  22. 22

    如何在Oracle plsql中通过正则表达式处理此字符串

  23. 23

    使用正则表达式顺序匹配正则表达式,而不是JavaScript中的字符串顺序

  24. 24

    使用正则表达式将字符串分割为每个特殊字符

  25. 25

    如何在emacs中使用正则表达式匹配此字符串?

  26. 26

    如何使用正则表达式替换此字符串

  27. 27

    如何创建正则表达式验证表达式以允许此字符串?

  28. 28

    如何使用正则表达式从字符串中删除特定字符串

  29. 29

    如何使用正则表达式解析字符串以排除特殊字符

热门标签

归档