我有一个字符串,我需要删除每一行前40个字符。你会有这样一条线:
9e600771af0eb709982673ca996dc632eacbd99c参/头/分支0
87499732f46076c8c054ec91b0fa71d8a720d09e参/头/分支1
bd274092d4126b023f7580aef30baf141ca8983b参/头/分支2
e27cc492e1d146b12c24ffbe0b58cfe9ea114e26参/头/分支3
但它必须是这样的
refs/heads/branch0
refs/heads/branch1
refs/heads/branch2
refs/heads/branch3
或者最终是这样:
branch0
branch1
branch2
branch3
这在JavaScript中是可能的吗?
发布于 2018-04-12 11:58:37
你可以试试RegEx /^.{40}\s/gm。这里
^.{40}将从一开始就接受任何40字符。\s,这将匹配以下空格字符。gm将在全球范围内并通过多行搜索比赛.工作代码示例:
var str = `9e600771af0eb709982673ca996dc632eacbd99c refs/heads/branch0
87499732f46076c8c054ec91b0fa71d8a720d09e refs/heads/branch1
bd274092d4126b023f7580aef30baf141ca8983b refs/heads/branch2
e27cc492e1d146b12c24ffbe0b58cfe9ea114e26 refs/heads/branch3`;
str = str.replace(/^.{40}\s/gm,'');
console.log(str);
// And
str = str.split('\n').map(function(s){
return s.split('/')[2];
}).join('\n');
console.log(str);
发布于 2018-04-12 11:58:41
用一个简单的正则表达式很好,也很快速。
let str = `9e600771af0eb709982673ca996dc632eacbd99c refs/heads/branch0
87499732f46076c8c054ec91b0fa71d8a720d09e refs/heads/branch1
bd274092d4126b023f7580aef30baf141ca8983b refs/heads/branch2
e27cc492e1d146b12c24ffbe0b58cfe9ea114e26 refs/heads/branch3`;
// replace the first 40 characters of each line with ''
let replaced = str.replace(/^.{40}/mg, '');
console.log(replaced);
https://stackoverflow.com/questions/49795839
复制相似问题