javascript - 在多行上替换字符串的所有实例
问题描述
我有一个看起来像这样的文件
1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X
我需要将每行(X)上的结束字符替换为 0。这看起来很简单,但每次我使用正则表达式时它要么为空,要么regex.replace
不是函数。目前我有/.*:.*:(.*)/g
正则表达式
解决方案
除了使用否定字符类和捕获组的最后一个字符之外,您可以将格式与冒号匹配。
^([^:]+:[^:]+:)\S$
^
字符串的开始(
捕获组 1[^:]+:[^:]+:
不匹配 2 次:
,然后匹配:使用否定字符类
)
关闭组\S
匹配非空白字符$
字符串结束
在替换中,使用捕获组 1 后跟 0
如果最后一个字符不能是冒号,请使用[^\s:]
代替\S
const regex = /^([^:]+:[^:]+:)\S$/gm;
const str = `1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X
1234567:abcdefg:X`;
const subst = `$10`;
const result = str.replace(regex, subst);
console.log(result);
推荐阅读
- sql - 合并两列并使用 SQL 创建一个新列?
- r - 计算回归线的轮廓置信区间
- node.js - 依赖关系在错误的地方与纱线
- html - 哪些场景需要在同一个表单中使用 GET 和 POST 方法?
- django-rest-framework - 如何在 drfyasg swagger 文档中添加带有自定义响应参数的序列化程序示例响应?
- javascript - 使用 SetInterval 从英雄部分中的数组更改图像
- git - Git clone --recursive 但没有结帐
- kubernetes - Amazon EKS (NFS) 到 Kubernetes pod。无法挂载卷
- java - 如何在 ActionListener 中正确调用形状绘制方法
- math - 具有线性回归的核函数