编程帮助 - CRegexpT 模板类

DEELX

CRegexpT 模板类

回到:目录 | 下一页:构造方法


概述

CRegexpT 模板类是 DEELX 中最重要的类,负责编译正则表达式和进行匹配替换。

CRegexpT 对象内部只记录正则表达式编译的相关信息。除了构造方法和 Compile 方法外,其他的所有匹配和替换方法都没有对 CRegexpT 对象内部数据做任何更改。因此,这些匹配和替换方法都是线程安全的。

CRegexpT 可以应用于各种简单基类型。声明为:

template <class CHART> class CRegexpT;

成员方法

构造方法   构造 CRegexp 对象,如果在使用构造方法时添加了参数,则构造方法将调用 Compile 方法。

Compile 方法
  编译正则表达式。CRegexp 对象需要先编译了正则表达式之后才能使用。

MatchExact 方法
  判断正则表达式是否能够从文本开始位置,刚好匹配到文本结束位置。

Match 方法
  在文本中查找匹配符合正则表达式的子字符串。

GetNamedGroupNumber 属性
  根据命名分组的名称,获取命名分组的编号。

PrepareMatch 方法
  创建一个匹配过程上下文对象,匹配时重复使用上下文对象可提高匹配效率。

Replace 方法
  在文本中将符合正则表达式的子字符串替换成另一字符串。

ReleaseContext 方法
  释放由 PrepareMatch 返回的匹配过程上下文对象。

ReleaseString 方法
  释放由 Replace 返回的字符串对象。


类声明
template <class CHART> class CRegexpT
{
public:
    CRegexpT(
        const CHART * pattern = 0,
        int flags = 0);

    void Compile(
        const CHART * pattern,
        int flags = 0);

public:
    MatchResult MatchExact(
        const CHART * tstring) const;

    MatchResult Match(
        const CHART * tstring,
        int start = -1) const;

    MatchResult Match(
        CContext * pContext) const;

    CContext * PrepareMatch(
        const CHART * tstring,
        int start = -1) const;

    CHART * Replace(
        const CHART * tstring,
        const CHART * replaceto,
        int start = -1,
        int ntimes = -1) const;

    int GetNamedGroupNumber(
        const CHART * group_name) const;

public:
    static void ReleaseString(
        CHART * tstring );

    static void ReleaseContext(
        CContext * pContext);
};

 

regexlab.com © 2005 - 2006