【发布时间】:2016-07-17 21:58:40
【问题描述】:
在vi中,换行
哎呀
我运行命令:
.s/a*\|j/x/g
线变成了
xj
而不是预期的
xx
这是 vi 的错误吗? sed、gawk 和 nawk 的行为符合预期,例如:
% echo aaaj | awk '{gsub(/a*|j/,"x");print}'
xx
另外,如果我运行命令而不是上面的命令
.s/j\|a*/x/g
(“j”和“a*”交换),那么该行将按预期变为“xx”。
【问题讨论】:
-
正则表达式有不同的风格,请参阅 vi 的文档以了解如何在那里实现正则表达式。
-
“查看文档”是 stackoverflow 中几乎所有问题的答案。显然,如果我能在文档中找到它,我就不会问了。
-
理论上,它应该替换
a*和j,因为a*\|j和j\|a*的DFA 相同。你的问题很好。由于我的回答没有回答原始问题,因此我将其删除。 -
很多人不寻找文档。如果你做到了,那么请在问题中说明它,避免额外的猜测。
-
是否应该在 stackoverflow.com 上提出任何问题的每个人都说明是她/他做到了?