regex 如何更改x行的最后一个字符?

wmtdaxz3  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(90)

我有一个500行的文本,我想把每10行的最后一个字符改为一个符号,而不改变其余行的内容。你应该做的是改变50行,并添加到所有行;最后把最后一个字符(不管它是什么)改为一个**符号 *。

示例:

line1'
line2{
line3+
line4´

字符串
如果我应用我上面提出的逻辑,对于每第二行,它应该看起来像这样:

line1'
line2;
line3+
line4;


我想只使用Regex,没有编程语言或类似的。

我的正则表达式:

^(.*\r?\n){9}(.*)(.)$

irtuqstp

irtuqstp1#

在你的模式中,你有3个捕获组,你也可以只使用1个捕获组。但是你不应该重复捕获组本身,因为你只会捕获最后一次迭代的值。
如果使用^(.*\r?\n){9},则只会捕获第9行,如果在替换中只使用捕获组,则会丢失前8行。
您可以使用单个捕获组,在该组中,您可以匹配以换行符结尾的9行,然后是第10行。
在捕获组之后,您可以匹配单个字符。请注意,.匹配任何字符,如果第10行为空,则不会匹配。

^((?:.*\r?\n){9}.*).$

字符串
参见regex demo
在替换使用组1中,后面是一个通常表示为$1;\1;的子

相关问题