程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi 正則表達式

Delphi 正則表達式

編輯:Delphi

在Delphi中使用正則表達式,我以前用的是PaxScripter裡面的——TRegExpr, 引用單元:RegExpr1。但有很多人使用的是RegExpr 是http://RegExpStudio.com   提供的,現在好像免費了,而且包含在Lazarus裡面。 Freepascal本身還提供了Regex單元和TRegexEngine類用以解析正則表達式。

Delphi自2009版開始提供了原生態的正則表達式支持,而後XE版好像有有所調整,但都是通過應用RegularExpressions單元,但與以前第三方方法有區別的是,它的實現是通過Record結構體而不是Class類(萬一博客演示2009版,也是Class ——TRegex,並配合IRegex接口 ),據說是為了效率。

主要功能實現是通過使用封裝後的類TRegEx,對於所有功能實現它定義了重載後的方法和靜態類方法,如下:

 
  TMatchEvaluator = ( Match: TMatch):   ;

  TRegEx = 
  private
    FOptions: TRegExOptions;
    FMatchEvaluator: TMatchEvaluator;
    FNotifier: IInterface;
    FRegEx: TPerlRegEx;
     InternalOnReplace(Sender: TObject;  ReplaceWith: UTF8String);
  public
     Create( Pattern: ); ;
     Create( Pattern: ; Options: TRegExOptions); ;

     IsMatch( Input: ): Boolean; ;
     IsMatch( Input: ; StartPos: Integer): Boolean; ;
    class  IsMatch( Input, Pattern: ): Boolean;; static;
    class  IsMatch( Input, Pattern: ; Options: TRegExOptions): Boolean; ; static;

    class  Escape( Str: ; UseWildCards: Boolean = False): ; static;

     Match( Input: ): TMatch; ;
     Match( Input: ; StartPos: Integer): TMatch; ;
     Match( Input: ; StartPos, Length: Integer): TMatch; ;
    class  Match( Input, Pattern: ): TMatch; ; static;
    class  Match( Input, Pattern: ; Options: TRegExOptions): TMatch; ; static;

     Matches( Input: ): TMatchCollection; ;
     Matches( Input: ; StartPos: Integer): TMatchCollection; ;
    class  Matches( Input, Pattern: ): TMatchCollection; ; static;
    class  Matches( Input, Pattern: ; Options: TRegExOptions): TMatchCollection; ; static;

     Replace( Input, Replacement: ): ; ;
     Replace( Input: ; Evaluator: TMatchEvaluator): ; ;
     Replace( Input, Replacement: ; Count: Integer): ; ;
     Replace( Input: ; Evaluator: TMatchEvaluator; Count: Integer): ; ;
    class  Replace( Input, Pattern, Replacement: ): ; ; static;
    class  Replace( Input, Pattern: ; Evaluator: TMatchEvaluator): ; ; static;
    class  Replace( Input, Pattern, Replacement: ; Options: TRegExOptions): ; ; static;
    class  Replace( Input, Pattern: ; Evaluator: TMatchEvaluator; Options: TRegExOptions): ; ; static;

     Split( Input: ): TArray<>; ; ;
     Split( Input: ; Count: Integer): TArray<>; ; ;
     Split( Input: ; Count, StartPos: Integer): TArray<>; ;
    class  Split( Input, Pattern: ): TArray<>; ; static;
    class  Split( Input, Pattern: ; Options: TRegExOptions): TArray<>; ; static;
  ;

以 Replace 為例,

……

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved