我有一个500行的文本,我想把每10行的最后一个字符改为一个符号,而不改变其余行的内容。你应该做的是改变50行,并添加到所有行;最后把最后一个字符(不管它是什么)改为一个**符号 *。
示例:
line1' line2{ line3+ line4´
字符串如果我应用我上面提出的逻辑,对于每第二行,它应该看起来像这样:
line1' line2; line3+ line4;
型我想只使用Regex,没有编程语言或类似的。
Regex
我的正则表达式:
^(.*\r?\n){9}(.*)(.)$
型
irtuqstp1#
在你的模式中,你有3个捕获组,你也可以只使用1个捕获组。但是你不应该重复捕获组本身,因为你只会捕获最后一次迭代的值。如果使用^(.*\r?\n){9},则只会捕获第9行,如果在替换中只使用捕获组,则会丢失前8行。您可以使用单个捕获组,在该组中,您可以匹配以换行符结尾的9行,然后是第10行。在捕获组之后,您可以匹配单个字符。请注意,.匹配任何字符,如果第10行为空,则不会匹配。
^(.*\r?\n){9}
.
^((?:.*\r?\n){9}.*).$
字符串参见regex demo在替换使用组1中,后面是一个通常表示为$1;或\1;的子
$1;
\1;
1条答案
按热度按时间irtuqstp1#
在你的模式中,你有3个捕获组,你也可以只使用1个捕获组。但是你不应该重复捕获组本身,因为你只会捕获最后一次迭代的值。
如果使用
^(.*\r?\n){9}
,则只会捕获第9行,如果在替换中只使用捕获组,则会丢失前8行。您可以使用单个捕获组,在该组中,您可以匹配以换行符结尾的9行,然后是第10行。
在捕获组之后,您可以匹配单个字符。请注意,
.
匹配任何字符,如果第10行为空,则不会匹配。字符串
参见regex demo
在替换使用组1中,后面是一个通常表示为
$1;
或\1;
的子