最近在使用Delphi XE編寫程序的過程中,需要統計一個字符串中的英文字母,數字,漢字以及其他字符;在網上找了很久關於用Pascal語言提取中文漢字的方法,發現都不能很好的實現,於是經本人親測有效,發現了使用Delphi XE自帶的一個正則表達式控件可以實現這一功能。下面就正則表達式提取漢字做一點說明,希望能幫到大家(如果寫的不好,還請多多包涵,謝謝!)
在DelphiXE中有一個自帶的關於正則表達式的單元:RegularExpressions,在這個單元中有TRegEx類可以使用,當我們需要用正則表達式進行判斷時可以用:TRegEx.Match()方法進行判斷,該方法有兩個參數:第一個參數是要進行判斷的字符串,第二個參數是所用到的正則表達式;
注意:正常只能輸入漢字的正則表達式為:"^[\u4e00-\u9fa5]{0,}$"。而 Delphi中需要進行轉義, 輸入漢字的正則表達式為: “^[\x{4E00}-\x{9FA5}]+$”或”^[\x{4e00}-\x{9fa5}]{0,}$”)否則程序運行起來會報錯。
例如:我現在需要判斷字符串中的漢字,那么使用TRegEx.Match()進行判斷的方法如下:
if TRegEx.Match(s, sPattern).Success then
begin
...
end;
其中:s是需要判斷的字符串;sPattern是正則表達式;Success判斷是否匹配成功,匹配在成功則執行begin..end之間的代碼
上述用法為本人親測在Delphi XE中有效!!!
感謝原文作者:風流盲俠花滿樓
原文鏈接:https://blog.csdn.net/qq_40090395/article/details/107363515