【PHP】中文日文字符串校验解决方案
CrazyPanda发表于:2023-12-14 10:17:03浏览:385次
由于开发需要,要识别中文和日文文字段落,网上查了很多资料,大部分都是使用正则校验preg_match,但中文和日文有些汉字是相同的,不能直接校验出结果,经过多次修改,也算是找出了解决办法。
首先找到中文和日文的正则校验
中文校验:
preg_match('/\p{Han}+/u','',$str);
日文校验:
preg_match('/[\x{4E00}-\x{9FBF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}]/u', $str)
字符串校验结果以中文优先,然后是日文,所以这里我用了另一个方法,正则替换字符串preg_replace,
先将获取到的字符串中的中文全部替换掉,剩下的字符串再进行日文的正则校验,如果还是日文,则判断为日文字符串,否则判断为中文字符串。
//中文字符替换 $str = preg_replace('/\p{Han}+/u','',$str); //日文字符校验 if (preg_match('/[\x{4E00}-\x{9FBF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}]/u', $str)) { return true; } else { return false; }
实际操作
中文字符串:
$str = '在宇宙的辽阔中, 星辰闪耀光芒。 生命如花绽放, 美丽与希望相伴。';
中文字符替换后,只剩下标点符号,
$str = ', 。 , 。';
最终结果判断为中文。
日文字符串:
$str = '宇宙の広がりで、 星々輝く。 生命は花のように、 美しさと希望を共に咲き誇る。';
中文字符替换后,只剩下日文及标点符号
$str = 'のがりで、 く。 はのように、 しさとをにきる。';
最终匹配结果为日文。
总结:
经过此操作已经实现了中文日文字符串校验,满足了功能需要,期间也试过先将日文字符全部替换掉,仅剩中文字符,但这种方式判断不准确,只能先把中文字符替换掉。
已上就是本次中文日文校验解决方案。
猜你喜欢
- 【PHP】生成二维码海报
- 目录1.版本2.安装扩展3.生成海报4.代码解释5.附一个字体文件 6.参考文档1.版本php:7.2+ ,本示例使用的是7.3endroid/qr-code :4.* ,本示例使用的是4.3intervention/image:2.* ,本示例使用的是2.7使用前检查下是否启用了 gd2 扩展2.安装扩展composer require endroid/qr-codecomposer require intervention/image3.生成海报<? php &nb
- 【PHP】php逻辑测试,测试也要设计—phpunit实践
- 概述本文阐述如何利用面向对象的思想,在phpunit框架下实现测试用例、数据文件、配置信息和lib库等信息分离,并能有效组合。也许有些QA认为,测试代码只要能满足测试要求即可,根本不需要有什么设计的理念。其实不然,好的测试代码,应该是可读性强,可扩展性强。以下分享一个我在实际项目中的小想法来阐述这个观点,仅作抛砖引玉之用。具体实现在autoFunc测试目录下,创建conf、data、lib三个目录,分别用于保存配置信息、数据文件和lib库,测试用例直接放在autoFunc下。A 方案直接在tes
- 【PHP】PHP面试题
- 100 个常见的 PHP 面试题1) PHP是什么?PHP是一种基于脚本的web语言,开发者可以动态的创建网页。2) PHP的全称?Hypertext Preprocessor(超文本预处理器)。3) PHP与哪些编程语言相似?PHP语法类似于Perl和C。5) 实际使用的PHP是哪个版本?推荐使用版本7。6) 如何从命令行执行PHP脚本?在命令行界面(CLI),指定要执行的脚本的文件名,如下所示:1php script.php7) 如何从命令行界面运行交互式PHP Shell?将PH
- 【PHP】nginx负载均衡器的部署(5层\7层)
- 目录什么是负载均衡?实验:实现Web业务的负载均衡(http协议负载均衡)一、实验规划图:如何实现克隆虚拟机呢?二、实验步骤:1、准备4台服务器,一台做负载均衡器,另外的3台做web服务器,每台都需要安装nginx,建议都编译安装nginx,统一安装配置2、安装nginx成功后配置nginx里的网页,使之呈现对应的效果3、修改四台linux机器的名字:4、检查配置是否成功5、对n
- 【PHP】php怎么将汉字转为拼音
- PHP是一种非常流行的服务端脚本语言,它具有灵活、快速、安全等优点,因此被广泛应用于Web开发、互联网应用和企业级软件开发等领域。而将汉字转为拼音是一个常见的需求,特别是在中文搜索、排序、筛选等场景下,可以提高用户体验和检索准确性。本文将介绍如何使用PHP实现将汉字转为拼音的方法。一、使用PHP拓展PHP中有一个名为pinyin的拓展,通过它可以很方便地将汉字转为拼音。首先需要在php.ini文件中开启拓展,找到下面这行并取消注释,保存并重启PHP服务:extension=pinyin.so登录
- 【PHP】php中标识符允许出现的符号有哪些
- php中标识符允许出现的符号有字母、数字、下划线和中文字符。详细介绍:1、字母和数字,标识符可以由字母和数字组成,它们可以以字母开头,后面可以跟随任意数量的字母、数字或下划线;2、下划线,标识符可以包含下划线,但不能以下划线开头;3、中文字符,从PHP 7.2版本开始,允许在标识符中使用中文字符,$中文变量、function中文函数()等都是合法的标识符等等。本教程操作系统:windows10系统、PHP 8.1.3版本、DELL G3电脑。在PHP中,标识符是用来标识变量、函数、类、
- 【PHP】php后端搜索插件有哪些
- php后端搜索插件有Elasticsearch、Solr、Sphinx、Algolia、MySQL全文搜索等等。详细介绍:1、Elasticsearch,提供了强大的全文搜索功能,可以快速地处理大量的数据,并支持复杂的查询和过滤;2、Solr,提供了全文搜索、分布式搜索和面向文档的搜索功能,Solr具有高性能和可扩展性,并支持多种查询语法和过滤器;3、Sphinx等等。本教程操作系统:windows10系统、PHP8.1.3版本、Dell G3电脑。PHP后端搜索插件是一种用于在网站或
- 【PHP】php中?:与??运算符有什么不同?
- 在PHP 7中,有两个类似的语法结构:“??”和“?:”,它们都是用于处理条件判断和返回值的运算符。尽管它们看起来相似,但它们的作用和用法有一些区别。"?:"是三目运算符,语法格式为:$result = $test ? $test : ′ ′ ; 意思就是当test存在时(即empty($test)为false),则返回它本身,否则返回空(当然也可以返回其他,这里的空只是举个例子)。"??"是php7新引入的语法,它相当于是isset($result[‘k
栏目分类全部>
推荐文章
- 【PHP】PHP中的array_values()函数获取数组中的值
- 【Vue】Vue3 开发实战分享——打印插件 Print.js 的使用(Vue3 + Nodejs + Print.js 实战)以及 el-table 与 el-pagination 的深入使用(下)
- 【PHP】php7弃用的函数有哪些
- 【C#】C# Winfrom 常用功能整合-2
- 【PHP】PHP面试题
- 【PHP】php中魔术常量有哪些
- 【Vue】vue使用后端提供的接口
- 【React】16 个实用的 React 库
- 【UniApp】如何在uniapp中实现本地上传音频功能
- 【Python】快速入门Flask框架:构建简单而灵活的Web应用