首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

【正则有关问题】怎么得到两个Tag之间的文本

2012-01-16 
【正则问题】如何得到两个Tag之间的文本有一文本文件如下publicintUpdate $TableName$ ( $TableName$ Da

【正则问题】如何得到两个Tag之间的文本
有一文本文件如下
public   int   Update <$TableName$> ( <$TableName$> Data   data)
                {
                        int   result   =   0;
                        if   (data.ID   ==   0)
                        {
                                throw   new   ArgumentException( "用于更新的 <$TableName$> 数据不包含ID信息 ");
                        }
                        DbCommand   cmd   =   db.GetStoredProcCommand( <$TableNameUpperCase$> _ADD_PROCEDURE_NAME);
        <$Loop$>
                        db.AddInParameter(cmd,   " <$ColumnName$> ",   DbType. <$ColumnDBType$> ,data. <$ColumnName$> );
        <$LoopEnd$>
                        try
                        {
                                result   =   db.ExecuteNonQuery(cmd);
                        }
                        catch   (SqlException   e)
                        {
                                throw   new   SqlException( "在执行 <$TableName$> 记录更新时发生数据库异常 ",   e);
                        }
                        finally  
                        {
                                cmd.Dispose();
                        }

                        return   result;
                }

需要取出 <$Loop$> 和 <$LoopEnd$> 之间的文本,应该怎么实现?

[解决办法]
正则: <\$Loop\$> (.*?) <\$LoopEnd\$>
结果:
捕获 1 :
<$Loop$>
db.AddInParameter(cmd, " <$ColumnName$> ", DbType. <$ColumnDBType$> ,data. <$ColumnName$> );
<$LoopEnd$>
==============================华丽的分隔线===============================
捕获 1 :
组 1 :
db.AddInParameter(cmd, " <$ColumnName$> ", DbType. <$ColumnDBType$> ,data. <$ColumnName$> );

==============================华丽的分隔线===============================

------解决方案--------------------


Match m = Regex.Match(str, @ " <\$Loop\$> ([\s\S]*?) <\$LoopEnd\$> ", RegexOptions.IgnoreCase);
if (m.Success)
{
MessageBox.Show(m.Result( "$1 "));
}

热点排行