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如何实现按需加载


Copyright © 2002-2019 测速网 https://www.inhv.cn/ 皖ICP备2023010105号 城市 地区 街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!
热门搜索