主页
文章
交流
项目
购买
客服

 

怎么样跳过代码注释中的匹配关键字

欢迎讨论 » 表达式交流 » 怎么样跳过代码注释中的匹配关键字 »


   

怎么样跳过代码注释中的匹配关键字
发表:smartphone,2010-6-12 11:37:28

回复

 
我用下面的正则表达式
(?<Code1>[^{}]*)\{(?<Code2>(?>([^{}])*|\{(?<DEPTH>)|\}(?<-DEPTH>))*(?(DEPTH)(?!)))\}解析下面的代码,但是如果中间有注释应该怎么跳过去?

(?<Code1>[^{}]*)\{(?<Code2>(?>([^{}|\*[^*/]*\*/])*|\{(?<DEPTH>)|\}(?<-DEPTH>))*(?(DEPTH)(?!)))\} 不能匹配,望老师请教


using System;
//using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsFormsApplication1
{
    /*{*/
    class class1
    {
    }


    class Class2
    {

    }
}

 namespace ttt
{
    class Class1
    {
    }

    class Class2
    {
    }
}


namespace rrrrrrr
{
    class Class1
    {
    }

    class Class2
    {

    }
}

   

Re: 怎么样跳过代码注释中的匹配关键字
发表:史寿伟,2010-6-20 0:42:22

回复

 
其实除了需要跳过多行注释,还需要跳过‘单行注释\’,字符串,因此,你的
[^{}]*

需要替换成:
(/\*((?!*/).)*\*/|//[^\r\n]*|"[^"]*"|'[^']*'|[^{}])*

你已有你的思路,你自己再理解一下。


第 1 页,共 1 页: 第一页 上一页 下一页 最后一页


相关赞助商链接

 
 

RegExLab.com © 2005 - 2009  渝ICP备05015140号