在空间和特殊字符之间匹配单词

时间:2012-05-12 13:15:02

标签: objective-c regex vim

我有以下代码:

@synthesize property1;
@synthesize property2;
@synthesize property3;
@synthesize property4;

我希望他们像

一样结束
@synthesize property1 = _property1;
@synthesize property2 = _property2;
@synthesize property3 = _property3;
@synthesize property4 = _property4;

我正在使用Vim并且一直试图提出一个解决方案来计算空间和;之间的属性名称,但是我尝试过的所有内容都给了我一个匹配,包括两个分隔符。< / p>

4 个答案:

答案 0 :(得分:4)

试试这个:

:%s#^\(@synthesize\s\)\(.*\);#\1\2 = _\2;#

答案 1 :(得分:2)

这是我猜的最小的一个:

:1,4s/\([a-z0-9]\+\);/\1 = _\1;/g

请注意,1,4是要应用此搜索/替换的行。

更多详情可在http://vim.wikia.com/wiki/Search_and_replace

找到

答案 2 :(得分:2)

可以使用简洁的替换命令来解决问题。

:%s/@synthesize \zs\w\+/& = _&/

答案 3 :(得分:0)

:perldo s / \ @ \ w + \ s \ K(。*?); / = _ $ 1; / g