正则表达式辅助类

using System;
using System.IO;
using System.Text ;
using System.Collections;
using System.Collections.Specialized;
using System.Text.RegularExpressions;

namespace LF.Framework
{
///
/// ------------------------------------------------
/// 创建时间:2005-11-07
/// 正则表达式辅助类
/// 已经通过单元测试
///
public class RegAssist
{
  ///
  /// 查找文本(/w+)英文字母下划线
  ///
  ///
  ///
  ///
  static private MatchCollection findText(string input,string pattern)
  {
  Regex reg = new Regex(pattern);
  return reg.Matches(input);
  }
  ///
  /// 查找在标记中的文本(/w+)英文字母下划线
  ///
  /// 输入字符串
  /// 左标记
  /// 右标记
  /// 查找到的文本集合
  static public StringCollection FindTextBetweenTag(string input,string leftTag,string rightTag)
  {
  leftTag = Regex.Escape(leftTag);
  rightTag = Regex.Escape(rightTag);
  string pattern = @"(?<={0})/w+(?={1})";
  pattern = string.Format(pattern,leftTag,rightTag);

  MatchCollection mc = RegAssist.findText(input,pattern);
  StringCollection sc = new StringCollection();
  foreach(Match m in mc)
  {
    sc.Add(m.Value);
  }
  return sc;
  }
  ///
  /// 替换标记中的文本(/w+)英文字母下划线
  ///
  /// 输入字符串
  /// 左标记
  /// 右标记
  /// 替换文本,如果需要包括原匹配字符串,请使用{0}
  /// 替换后的字符串
  static public string ReplaceBetweenTag(string input,string leftTag,string rightTag,string replacement)
  {
  leftTag = Regex.Escape(leftTag);
  rightTag = Regex.Escape(rightTag);
  string pattern = @"(?<={0})/w+(?={1})";
  pattern = string.Format(pattern,leftTag,rightTag);

  if(replacement.IndexOf("{0}")>=0)
  {
    MatchCollection mc = RegAssist.findText(input,pattern);
    foreach(Match m in mc)
    {
    string ptn = pattern.Replace(@"/w+",m.Value);
    string rep = string.Format(replacement,m.Value);
    Regex reg = new Regex(ptn);
    input = reg.Replace(input,rep);
    }
  }
  else
  {
    input = Regex.Replace(input,pattern,replacement);
  }
  return input;
  }
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值