TPerlRegEx

type
  TPerlRegEx = class(TComponent)
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

    //
此函数可以自动为特殊字符加转义符号 \
    class function EscapeRegExChars(const S: string): string;

    //
编译表达式,编译后会加快执行速度,降低启动速度,如果表达式比较复杂而又多次执行,应该先编译
    procedure Compile;

    //
此方法会检查是否编译,如果没编译刚执行编译
    procedure Study;

    //
查找函数
    function Match: Boolean;

    //
查找下一个函数
    function MatchAgain: Boolean;

    //
替换
    function Replace: PCREString;

    //
执行全部替换
    function ReplaceAll: Boolean;
    function ComputeReplacement: PCREString;
    procedure StoreSubExpressions;
    function NamedSubExpression(const SEName: PCREString): Integer;

    //
字符串分割,参数1放分割后的字符串,参数2是分成多少份,给一个较大值为能分多少份就是多少
    procedure Split(Strings: TStrings; Limit: Integer);
    property Compiled: Boolean read FCompiled;

    //
有没有找到的标记
    property FoundMatch: Boolean read GetFoundMatch;
    property Studied: Boolean read FStudied;

    //
显示找到的字符
    property MatchedExpression: PCREString read GetMatchedExpression;

    //
找到的字符串长度
    property MatchedExpressionLength: Integer read GetMatchedExpressionLength;

    //
找到的字符串所在位置
    property MatchedExpressionOffset: Integer read GetMatchedExpressionOffset;

    //
设定搜索范围: StartStop  1开始
    property Start: Integer read FStart write SetStart;
    property Stop: Integer read FStop write SetStop;


    property State: TPerlRegExState read FState write FState;

    //
子表达式的个数
    property SubExpressionCount: Integer read GetSubExpressionCount;

    //[0], [1], [n]
储存第N个表达式匹配的内容
    property SubExpressions[Index: Integer]: PCREString read GetSubExpressions;

    //[0], [1], [n]
储存第N个表达式匹配的长度
    property SubExpressionLengths[Index: Integer]: Integer read GetSubExpressionLengths;

    //[0], [1], [n]
储存第N个表达式匹配的位置
    property SubExpressionOffsets[Index: Integer]: Integer read GetSubExpressionOffsets;

    //
这是要替换的源字符串
    property Subject: PCREString read FSubject write SetSubject;
    property SubjectLeft: PCREString read GetSubjectLeft;
    property SubjectRight: PCREString read GetSubjectRight;
  published
    //
可以设定一些选项,比如是否区分大小写
    property Options: TPerlRegExOptions read FOptions write SetOptions;

    //
这是表达式, 在这里是准备替换掉的子串
    property RegEx: PCREString read FRegEx write SetRegEx;

    //
要替换成的新串
    property Replacement: PCREString read FReplacement write FReplacement;

    property OnMatch: TNotifyEvent read FOnMatch write FOnMatch;
    property OnReplace: TPerlRegExReplaceEvent read FOnReplace write FOnReplace;
  end;

转载于:https://www.cnblogs.com/w413133157/archive/2010/05/04/1727117.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值