delphi如何判断字符串是否包含汉字
这篇“delphi如何判断字符串是否包含汉字”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“delphi如何判断字符串是否包含汉字”文章吧。
代码
//正则版usesRegularExpressions;//相关单元functionIsChineseStr(s:String):Boolean;constpattern='[\x{4E00}-\x{9FA5}]';//测试用的表达式beginResult:=false;ifTRegEx.IsMatch(s,pattern)thenbeginResult:=True;end;end;//非正则版functionisChina(S:string):Boolean;varpStr:PWideChar;beginResult:=false;pStr:=PChar(S);whilepStr^<>#0dobegincasepStr^ofChar($4E00)..Char($9FCB):beginResult:=True;Break;end;end;Inc(pStr);end;end;
改进版
functionIsChina(S:string):Boolean;varpStr:PWideChar;functionHexToInt(constHexValue:string):Integer;beginVal('$'+HexValue,Result,Result);end;functionInChar(AChar:Char;AStart,AEnd:string):Boolean;beginResult:=(Ord(AChar)>=HexToInt(AStart))and(Ord(AChar)<=HexToInt(AEnd))end;beginResult:=false;pStr:=PWideChar(S);whilepStr^<>#0dobeginifInChar(pStr^,'4E00','9FA5')//orInChar(pStr^,'9FA6','9FEF')//基本汉字补充74字orInChar(pStr^,'3400','4DB5')//扩展AorInChar(pStr^,'20000','2A6D6')//扩展B42711字orInChar(pStr^,'2A700','2B734')//扩展C4149字orInChar(pStr^,'2B740','2B81D')//扩展D222字2B740-2B81DorInChar(pStr^,'2B820','2CEA1')//PUA(GBK)部件81字E815-E86ForInChar(pStr^,'E815','E86F')//扩展E5762字2B820-2CEA1orInChar(pStr^,'2CEB0','2EBE0')//扩展F7473字2CEB0-2EBE0orInChar(pStr^,'30000','3134A')//扩展G4939字30000-3134AorInChar(pStr^,'2F00','2FD5')//康熙部首214字2F00-2FD5orInChar(pStr^,'2E80','2EF3')//部首扩展115字2E80-2EF3orInChar(pStr^,'F900','FAD9')//兼容汉字477字F900-FAD9orInChar(pStr^,'2F800','2FA1D')//兼容扩展542字2F800-2FA1DorInChar(pStr^,'E400','E5E8')//部件扩展452字E400-E5E8orInChar(pStr^,'E600','E6CF')//PUA增补207字E600-E6CForInChar(pStr^,'31C0','31E3')//汉字笔画36字31C0-31E3orInChar(pStr^,'2FF0','2FFB')//汉字结构12字2FF0-2FFBorInChar(pStr^,'3105','312F')//汉语注音43字3105-312ForInChar(pStr^,'31A0','31BA')//注音扩展22字31A0-31BAorInChar(pStr^,'3007','3007')//?1字3007thenbeginResult:=True;Break;end;Inc(pStr);end;end;
版本3:
上面代码可以满足大部分需求。
DelphiFmx 发现非正则得小问题:
以上就是关于“delphi如何判断字符串是否包含汉字”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注主机评测网行业资讯频道。
上一篇:react如何实现跳转到新页面
下一篇:react如何实现按需加载
输入法切换键是哪个键?输入法切
冬月是哪一个月?冬月是什么意思
个人所得税退税金额怎么算出来的
输入法全角和半角有什么区别?输
a4纸尺寸是多少厘米?a4纸的由来
个人所得税扣除标准?个人所得税
输入法哪个好用?输入法介绍
卡拉OK是哪个国家发明的?卡拉OK
mikutools原神网页版入口链接?m
关机特别慢什么原因?电脑和手机