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

官方的正則表達式組件 RegularExpressions (2) : 子表達式

編輯:Delphi

uses RegularExpressions; 
 
const 
  pattern = '([A-Z]+)(\d+)'; //其三個子表達式分別是:[A-Z]+\d+  [A-Z]+  \d+ 
  txt = 'AAA1 BBB2 AA11 BB22 A111 B222 AAAA'; //測試用的目標文本 
 
procedure TForm1.Button1Click(Sender: TObject); 
var 
  match: TMatch; 
  group: TGroup; 
  groups: TGroupCollection; 
begin 
  match := TRegEx.Match(txt, pattern); 
  groups := match.Groups; 
 
  Memo1.Clear; 
  for group in groups do 
  begin 
    Memo1.Lines.Add(group.Value); //AAA1/AAA/1 
  end; 
end; 
 
procedure TForm1.Button2Click(Sender: TObject); 
var 
  match: TMatch; 
  group: TGroup; 
begin 
  Memo1.Clear; 
  for match in TRegEx.Matches(txt, pattern) do 
  begin 
    for group in match.Groups do 
    begin 
      Memo1.Lines.Add(group.Value); 
    end; 
    Memo1.Lines.Add(''); 
  end; 
end; 
{************** 
AA11 
AA 
11 
 
BB22 
BB 
22 
 
A111 
A 
111 
 
B222 
B 
222 
**************} 
 
procedure TForm1.Button3Click(Sender: TObject); 
var 
  rStr: string; 
begin 
  Memo1.Clear; 
  rStr := TRegEx.Replace(txt, pattern, '$1');  //AAA BBB AA BB A B AAAA 
  Memo1.Lines.Add(rStr); 
 
  rStr := TRegEx.Replace(txt, pattern, '$2');  //1 2 11 22 111 222 AAAA 
  Memo1.Lines.Add(rStr); 
 
  rStr := TRegEx.Replace(txt, pattern, '$2$1'); //1AAA 2BBB 11AA 22BB 111A 222B AAAA 
  Memo1.Lines.Add(rStr); 
end; 
{********************************** 
AAA BBB AA BB A B AAAA 
1 2 11 22 111 222 AAAA 
1AAA 2BBB 11AA 22BB 111A 222B AAAA 
***********************************} 


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