您的位置:首页 > 其它

巧用vim正则表达式分组替换功能

2013-01-28 22:44 549 查看
在开发信息管理系统的时候,往往会有编辑信息的界面。如果是修改信息,那么需要将已有信息的属性赋给各个控件。在保存的时候,需要将控件的值赋给信息。

如下段代码所示为给各个控件赋值的代码:

this.项目编号TextBox.Text = _Obj.项目编号;

this.项目名称TextBox.Text = _Obj.项目名称;

this.负责人TextBox.Text = _Obj.负责人;

this.参加人1TextBox.Text = _Obj.参加人1;

this.参加人2TextBox.Text = _Obj.参加人2;

this.参加人3TextBox.Text = _Obj.参加人3;

this.项目来源TextBox.Text = _Obj.项目来源;

this.项目性质TextBox.Text = _Obj.项目性质;

this.项目内容及要求richTextBox.Text = _Obj.项目内容及要求;

this.开始日期DateTimePicker.Value = (DateTime)_Obj.开始日期;

this.结束日期DateTimePicker.Value = (DateTime)_Obj.结束日期;

如下段代码为将控件的值赋给_Obj对象:

_Obj.项目编号 = this.项目编号TextBox.Text;

_Obj.项目名称 = this.项目名称TextBox.Text;

_Obj.负责人 = this.负责人TextBox.Text;

_Obj.参加人1 = this.参加人1TextBox.Text;

_Obj.参加人2 = this.参加人2TextBox.Text;

_Obj.参加人3 = this.参加人3TextBox.Text;

_Obj.项目来源 = this.项目来源TextBox.Text;

_Obj.项目性质 = this.项目性质TextBox.Text;

_Obj.项目内容及要求 = this.项目内容及要求richTextBox.Text;

_Obj.开始日期 = this.开始日期DateTimePicker.Value;

_Obj.结束日期 = this.结束日期DateTimePicker.Value;

仔细分析,基本上第二段代码是对第一段代码”=“两边的内容对调再加适当休整即可。那么有没有方法可以将第一段代码迅速变换为第二段代码,而不是在手动敲一遍内?

我使用的VimEmu插件,刚好可以利用Vim正则表达式替换的功能实现这项需求。如下所示:

:s/\(.*\)=\(.*\);/\2=\1;/g。

其中s/ / /g为搜索并替换的语法。\2,\1是引用用正则表达匹配到的分组。\( \)括起来的是正则表达式分组匹配项,我这里将“=”之前的内容设为\1,将“=”号好“;"之间的内容设为\2。

如此,只需一条命令,即可完成第一段代码转换为第二段代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: