正则表达式中的组(group)

本文介绍了一种在Vi或Vim编辑器中通过正则表达式快速交换方法参数顺序的方法。此技巧适用于任何需要调整方法调用中参数顺序的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将 \( 和 \) 之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个),它们可以用 \1 到\9 的符号来引用。

 

 

将所有方法foo(a,b,c)的实例改为foo(b,a,c)。这里a、b和c可以是任何提供给方法foo()的参数。也就是说我们要实现这样的转换: 

foo(10,7,2)  foo(7,10,2) 

foo(x+13,y-2,10)  foo(y-2,x+13,10) 

foo( bar(8), x+y+z, 5)  foo( x+y+z, bar(8), 5)

 

下面这条替换命令能够实现这一魔法(在vi或vim中使用,其他类似):

:%s/foo(\([^,]*\),\([^,]*\),\([^)]*\))/foo(\2,\1,\3)/g

转载于:https://my.oschina.net/xiangxw/blog/11405

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值