WEB开发网
开发学院数据库MSSQL Server SQL Server 2005: 正则表达式使模式匹配和数据提取... 阅读

SQL Server 2005: 正则表达式使模式匹配和数据提取变得更容易

 2009-02-10 10:20:07 来源:WEB开发网   
核心提示: Figure4组的自定义可枚举对象 internal class GroupNode{private int _index;public int Index { get { return _index; } }private string _name;public string Name

SQL Server 2005: 正则表达式使模式匹配和数据提取变得更容易Figure4组的自定义可枚举对象

internal class GroupNode
{
  private int _index;
  public int Index { get { return _index; } }
  private string _name;
  public string Name { get { return _name; } }
  
  private string _value;
  public string Value { get { return _value; } }
  public GroupNode( int index, string group, string value )
  {
    _index = index;
    _name = group;
    _value = value;
  }
}
internal class GroupIterator : IEnumerable
{
  private Regex _regex;
  private string _input;
  public GroupIterator( string input, string pattern )
  {
    _regex = new Regex( pattern, UserDefinedFunctions.Options );
    _input = input;
  }
  public IEnumerator GetEnumerator()
  {
    int index = 0;
    Match current = null;
    string[] names = _regex.GetGroupNames();
    do
    {
      index++;
      current = (current == null) ?
        _regex.Match( _input ) : current.NextMatch( );
      if (current.Success)
      {
        foreach(string name in names)
        {
          Group group = current.Groups[name];
          if (group.Success)
          {
            yield return new GroupNode(
              index, name, group.Value );
          }
        }
      }
    }
    while(current.Success);
  }
}

在图 5 中,RegexGroups 函数定义与 RegexMatches 函数定义一样,除了它还返回匹配项中包含组名称的其他数据列。通过此函数,我们现在可在字符串中找到多个匹配项,并且可从每个匹配项中提取特定的信息片段。

上一页  5 6 7 8 9 10 

Tags:SQL Server 正则

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接