VS.Net 正则表达式.

VS.Net2010 里的 正则表达式是用 {} 来捕获分组. 用 \1 \2 来获取分组内容的.

Vs2012+的版本,使用 $1 $2 获取分组内容

 

如:在SQL SERVER 执行 drop table 时,可能有外键引用阻止。可以建立如下存储过程:

 

alter proc DropTable (@tab nvarchar(250) )
as begin

    declare @str nvarchar(max) ;
    set @str = N'' ;
    

    select @str = @str + N'ALTER TABLE [' + object_name( parent_object_id)  + '] DROP CONSTRAINT [' +  name + '];'
    from sys.foreign_keys 
    where   referenced_object_id  = object_id( @tab)

    exec sp_executesql @str ;

    if exists (select 1
                from  sysobjects
                where  id = object_id('ResKey')
                and   type = 'U')
    begin
        set @str = N'Drop table ' + @tab ;
        exec sp_executesql  @str ;
    end

end;

 

典型应用:

1. 把 : drop table A    替换为: exec DropTable 'A'

使用正则 搜索: drop table:b*{.*}

替换为: DropTable '\1'

 

2. 把  PK="ID" 去除。

搜索: PKs="[^\"]*"  替换为 空

 

3. 搜索类似于  $("#任何字符",  即以 #选择器的文本。 像: $("#row1",jt)  

\$\("\#[^"]+\"\,

 

4.  把 属性定义的属性名提取出来。

public string IID { get; set; }    

public string Memo { get; set; }

=》

"IID","Memo"

用如下正则:

public:b*:i:b*{[a-z|A-Z]*}:b*\{:b*get;:b*set;:b*\}      替换为 "\1",

 

以上使用的是 VS2010

VS2012的例子:

5.参数重排: 把第一个参数和第二个参数置换。

 jv\.confirm\([^\S\r\n]*([^,]*)[^\S\r\n]*\,[^\S\r\n]*([^,]*)[^\S\r\n]*\,

替换为: jv.confirm($2,$1,

6. <input /> 改为 <button>

(\<input)(.*? )value="(.*?)"(.*?)\/>

=>

<button$2$4>$3</button>

 

posted @ 2010-11-14 13:44  NewSea  阅读(301)  评论(0编辑  收藏  举报