最近在使用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