询问一个正则表达式,请大家帮忙

2019-09-05 10:47:23 +08:00
 fsckzy

没有行号,不管有多少行,只替换最后 3 个

abc
abc
abc
abc
abc
abc

改为

abc
abc
abc
123
123
123
6747 次点击
所在节点   Bash
5 条回复
ETiV
2019-09-05 10:51:38 +08:00
echo 123>> 三次
再用 tail 去掉头三行
xem
2019-09-05 11:57:00 +08:00
不要用正则的行模式,把最后三行内容+结尾判断作为整体匹配,替换成你要的,大概是这么个思路,仅供参考
emric
2019-09-05 12:55:01 +08:00
/(\w+)\n(\w+)\n(\w+)$/g
这样?
bumz
2019-09-06 00:16:20 +08:00
正则最后加个 lookahead

(?=(?:\n[^\n]*){1,3}

假设最后一行结尾有 \n (也就是标准文本文件
bumz
2019-09-06 00:19:11 +08:00
@bumz 没打完

非行模式,
结尾加 (?=(?:\n[^\n]*){1,3}$)
开头可以用比如 (?<=\n)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/598130

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX