[英]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.