BCB6 使用正则表达式的例子

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <regexp.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{

}
//---------------------------------------------------------------------------
// BCB使用正则表达式的例子
void __fastcall TForm1::btn1Click(TObject *Sender)
{
    // 定义正则表达式,除了 | 以外的连续字符串
    String szReg = "[^|]+";
    // 原始数据
    String szStr = "|项目代码1|项目代码2|项目代码3|项目代码4";
    // 构造正则表达式对象
    TRegexp regex(szReg.c_str());
    size_t len = 0;
    size_t pos = 0;
    while (true)
    {
        // 得到子字符串在原始字符串中起始位置pos 和 长度 len ,一开始从0位置开始找
        pos = regex.find(szStr.c_str(), &len, pos);

        // 如果得到一个unsigned字符的最大值,认为已经到达末尾
        if (pos == size_t(-1))
        {
            break;
        }

        // 显示子串
        String s = szStr.SubString(pos + 1 ,len);
        ShowMessage(s);

        // 移动pos
        pos += len;
    }
}
//---------------------------------------------------------------------------
原文地址:https://www.cnblogs.com/songr/p/13854847.html