Vim regex 反向链接

我要做:


%s/shop_/*//shop_\1 wp_\1/


为什么
shop_/*/

什么都不吻合?
已邀请:

风见雨下

赞同来自:

这里有几个问题。

定期表达 vim 不打算捕获 - 您需要使用
\/ \/

捕获。


*

并不意味着你的想法。 它的意思是 "0 或更早", 因此,你的 regex 方法 "含线
shop_

, 后面的后面 0+
/

, 然后是文字
/

.

你正在寻找
.

, 什么 regex 方法 "any character". 与明星一起
.*

它的意思是 "0 or more of any character". 可能你至少需要一个角色,所以使用
.\+

/
+

方法 " 1 或更多的以前"/


用它:
%s/shop_\/.\+\//shop_\1 wp_\1/

.

必要时补充它
g

在最后的斜线之后,以一行中的所有实例替换,而不仅仅是第一个。

小姐请别说爱

赞同来自:

如果我理解正确,你想要
%s/shop_\/.*\//shop_\1 wp_\1/


退出捕获支架并使用
.*

, 匹配任何数量的任何符号。

/您的搜索正在寻找 "shop_", 其次是任何数量的开口支架,然后是关闭支架/

要回复问题请先登录注册