在 delphi 中使用正規表示式, 目前 perlregex 應該是首選, 準備徹底而細緻地研究它.
官方**: xpressions.info/delphi.html
二、安裝方法:
perlregex提供了tperlregex類。主要用法是:
regex : tperlregex;
....
regex := tperlregex;
try
regex.subject := '要匹配的正文';
regex.regex := '正規表示式';
if regex.match then ....
finally
regex.free
end;
如果要多次匹配並做一些處理,可以:
matched : boolean;
....
regex.match;
while regex.foundmatch do
begin
....
regex.matchagain;
end;
如果要替換匹配到的內容,可以
regex.subject := '要匹配的正文';
regex.regex := '正規表示式';
regex.replace := '替換的字串'
if regex.match then regex.replaceall; //結果在regex.subject
或者 if regex.match then result := regex.replacement;
匹配到的字串放在regex.matchedexpression中,長度在regex.matchedexpressionlength中,上一次匹配的結束位置在regex.stop中
匹配到的子串放在regex.subexpressions中,子串個數在regex.subexpressioncount中。
如果正則式很複雜而且常用,可建立乙個生存期相對長的tperlregex例項.設定好regex屬性後,使用.study方法對正規表示式進行預處理.據幫助文件說,文件資料會大大提高效率.
詳情可參考文件。有一點文件上沒有提到(又或者我看漏了),在第一次匹配之後,如果沒有重新賦值subject,下一次匹配無論用match或者matchagain,都是從上次的結束位置開始。所以如果要重新開始匹配,應先把regex.start := 0;
四、正則單元
程式**
unit unitregex;
inte***ce
uses
perlregex;
function checkemail(emailaddr: string): boolean;
function checkstrornumber(str: string): boolean;
var
perlregex: tperlregex;
implementation
//email電子郵箱檢測
function checkemail(emailaddr: string): boolean;
begin
perlregex := tperlregex.create(nil);
perlregex.subject := emailaddr;
perlregex.regex := '\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*';
result := perlregex.match;
end;
//字元、數字檢測
function checkstrornumber(str: string): boolean;
begin
perlregex := tperlregex.create(nil);
perlregex.subject := str;
perlregex.regex := '^[a-za-z0-9]+$';
result := perlregex.match;
end;
end.
五、使用例項
程式**
六、常用正則表式
--------------------------------------
試驗:刪除http所有標籤
var
reg: tperlregex;
str:string;
begin
str:=memo1.text; //有<>等內容
reg := tperlregex.create(nil);
reg.subject := memo1.text;
reg.regex := '\<[^>]+()\>';
while reg.matchagain do
begin
str:=stringreplace(str,reg.subexpressions[0],'',[rfreplaceall]); //刪除http標籤
end;
showmessage(str);
freeandnil(reg);
end;
VC 中經常使用的函式!
1 domodal 函式用來直接顯示有模式對話方塊,create 用於建立無模式對話方塊。3 得到hwnd函式 findwindow findwindowex hwnd hwnd findwindow t ieframe null if hwnd 4 cstudlg afxgetmainwnd af...
HTML中經常使用的單位
css3新增加的相對單位,相對於html的根元素,修改根元素可以調整所有字型大小,還可以避免字型大小逐層復合的連鎖反應,未經過調整的瀏覽器,16px 1em。主要用於螢幕適配布局,移動端使用比較廣泛。使用這種方式,只要根據不同螢幕設定不同的根元素即可使系統適配不同的螢幕。相對於當前物件內文字的尺寸來...
QTP中經常使用的VB語句
1.輸出語句msgbox 輸出需要返回的資料值,加上 表示原樣輸出 msgbox hello world msgbox hello world result msgbox hello world vbokonly,greeting msgbox hello world vbokonly,greeti...