红鱼儿

【转】Delphi中正则表达式支持中文的写法

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

posted on 2021-11-01 18:03  红鱼儿  阅读(629)  评论(2编辑  收藏  举报