我想知道是否有人可以通过javascript帮助我使用正则表达式。
所以基本上我有以下字符串作为例子:
266
我希望使用正则表达式或其他任何方式将其转换为67,108,900 bytes 2,796,204.16 bytes
---------------- = ---------------------- = 2.796 * 10^6 bytes/sec = 2.796 MBps
24 sec 1 sec
以使用javascript执行此操作。
这里的想法是只删除包含内容的行之间的一个空行。 有没有办法做到这一点?
答案 0 :(得分:3)
一种可能的方法:
var str = "A\nB\n\n\nC\n\n\n\n\nD"
var out = str.replace(/\n(\n+)/g, '$1')
console.log(out) // "A\nB\n\nC\n\n\n\nD"
答案 1 :(得分:0)
根据我的评论
[\r\n]([\r\n]+)
仅使用\n
。
\n(\n+)
替换
$1
const regex = /\n(\n+)/gm;
const str = `A
B
C
D`;
const subst = `$1`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);

A
B
C
D
A
B
C
D
它匹配\n
,然后将其后面的所有\n
捕获到捕获组1.然后用捕获组1($1
)替换这些位置。结果比以前少\n
。这只会匹配2 + \n
,并且与单独的\n
不匹配。
答案 2 :(得分:0)
您可以使用LookAhead执行此操作。在需要时使用搜索内容但不在结果查询中包含此内容。
var str = "A\nB\n\n\nC\n\n\n\n\nD"
var resultWithLookAhead = str.replace(/(?=\n)(\n+)/g, "\n")
console.log(resultWithLookAhead);