巧用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。
如此,只需一条命令,即可完成第一段代码转换为第二段代码。
如下段代码所示为给各个控件赋值的代码:
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。
如此,只需一条命令,即可完成第一段代码转换为第二段代码。
相关文章推荐
- VIM运用正则表达式进行查找替换
- 在Visual Studio的替换窗口使用正则表达式分组是使用花括号,而不是小括号
- vim 正则替换功能
- Vim中的查找/替换与正则表达式(1)
- 正则表达式-替换和分组
- PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能
- 正则表达式几种常用功能—查询,提取,替换,分割
- C#正则表达式(RegEx)高级应用之分组(Group)替换(Replace)
- PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示功能
- PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能
- 正则表达式几种常用功能——查询,提取,替换,分割
- 正则表达式中分组功能高级用法
- VIM中的正则表达式及替换命令
- Eclipse中使用正则表达式替换的一点记录(使用正则表达式的分组)
- VIM运用正则表达式进行查找替换(78)
- 正则表达式实现添加、删除、替换三种功能
- C#正则表达式(RegEx)高级应用之分组(Group)替换(Replace)
- VIM中的正则表达式及替换命令
- 利用正则表达式替换功能,将C++注释转变成纯C的注释