正则表达式替换为出现次数

时间:2015-09-01 19:57:13

标签: regex pattern-matching

我必须进行正则表达式搜索并替换(例如在sublime text 2中)以获得以下结果。

自:

aab1
aaba2
aabb3
baba4
bbba5

要:

ccc1
cccc2
cccc3
cccc4
cccc5

我正在使用这些模式,但结果是只有c。

\n(a|b)+([0-9])
\nc\2

结果:

c1
c2
c3
c4
c5

注意:\ n是必不可少的,因为我试图只替换行开头的模式。没有我的正则表达式。

3 个答案:

答案 0 :(得分:1)

您可以替换以下正则表达式的结果:

/c/

with:

-prepareForReuse

答案 1 :(得分:1)

[ab](?=\D*\d+)

您可以使用它并替换为c。请参阅演示。

https://regex101.com/r/sS2dM8/30

答案 2 :(得分:0)

这是使用JavaScript字符串replace函数执行此操作的一种方法:

let str = `aab1
aaba2
aabb3
baba4
bbba5`;

str = str.replace(/(\n|^)([a-z]+)([0-9]+)/g, (m, m1, m2, m3) => m1+"c".repeat(m2.length)+m3);

您可以在MDN regex replace页面上的replace函数中了解有关将函数用作第二参数的更多信息。