繁体   English   中英

如何使用正则表达式向数组添加空格

[英]How can I add a space to an array using regex

我有一个以错误格式输出数据的文件。 我正在尝试使用 Javascript 来更正文件的格式。 为了让它起作用,我需要做的就是在数字和 A 之间添加一个空格。

问题是我不知道这些数字是多少。

该文件的示例输出如下:

NAME 12345A JAMES
NAME 12345A JAMES
NAME 12345A JAMES
NAME 12345A JAMES

所需的输出:

NAME 12345 A JAMES
NAME 12345 A JAMES
NAME 12345 A JAMES
NAME 12345 A JAMES

我无法将indexOf()与正则表达式一起使用,因此我尝试先将数据转换为字符串,然后再转换为数组。 我已经能够match正则表达式的每次出现,但是当我尝试在我的空间中splice ,它不起作用。 它似乎不喜欢使用match.index作为索引。 谁能看到我哪里出错了?

const fs = require('fs');

fs.readFile('fileName.txt', (err, data) => { 
    let regEx = /NAME \d\d\d\d\d/g;
    let convertToArray = data.toString().split("   ");
    console.log(convertToArray);

    while ((match = regEx.exec(convertToArray)) != null) {
        console.log(match.index);
    };

    let addSpace = convertToArray.splice(match.index, 0, ' ');
    console.log(addSpace);

});

您可以直接在数据上使用.replace

data.replace(/NAME \d+(?![ \d])/g, '$& ')

请参阅正则表达式演示

细节

  • NAME - 一个子字符串
  • - 空间
  • \\d+ - 1+ 位数
  • (?![ \\d]) - 后面没有空格或其他数字。

字符串替换模式中的$&指的是整个匹配值。

要处理任何空格,请在模式中用\\s替换文字空格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM