【PHP】中文日文字符串校验解决方案
CrazyPanda发表于:2023-12-14 10:17:03浏览:391次
由于开发需要,要识别中文和日文文字段落,网上查了很多资料,大部分都是使用正则校验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】php判断字符串是否含有日文字符
- 可以使用PHP的正则表达式函数preg_match()来检测字符串上的日文字符。以下是一个例子:$str = "こんにちは、世界!"; if (preg_match('/\p{Hiragana}|\p{Katakana}|\p{Han}/u', $str)) { echo "字符串包含日文字符。"; } else&nbs
- 【PHP】MongoDB介绍
- MongoDBA是一个开源的、面向文档的NoSQLA数据库,它提供了高性能、可扩展的数据存储解决方案。MongoDB支持动态查询、高可用性、自动分片等功能,使其成为处理大规模数据集的优选数据库。MongoDB的核心特性包括:面向集合存储:数据被分组存储在集合中,集合类似于RDBMS中的表,但提供了更高的灵活性和无模式存储。无模式结构:存储在集合中的数据是无模式的,即每个文档可以有不同的字段和值类型,这为用户提供了极大的灵活性。高性能:MongoDB利用内存中的数据缓存来提高性能,并支持数据的
- 【PHP】php怎么去数组中的指定几条
- php使用下标、array_key_exists()函数、isset()函数、unset()函数和array_splice()函数去数组中的指定几条。详细介绍:1、下标,下标从0开始,依次递增;2、array_key_exists()函数,该函数接受两个参数,第一个参数是要检查的键,第二个参数是要检查的数组;3、isset()函数,接受一个参数,即要检查的数组元素等等。本教程操作环境:windows10系统、php8.1.3版本、DELL G3电脑。PHP是一种广泛使用的编程语言,它提
- 【PHP】php解析大量数据json文件方式
- 1. 在处理超大文件时,我们可以使用逐行读取的方式来解析JSON数据。具体步骤如下:打开文件并逐行读取数据。每次读取一行数据后,使用json_decode()函数将其解析为JSON对象。对解析后的JSON对象进行处理,例如提取需要的数据或进行其他操作。继续读取下一行,重复步骤2和步骤3,直到文件读取完毕。下面是一个示例代码,演示了如何使用以上步骤来解析超大JSON文件:$file = fopen('large_file.json', 'r&#
- 【PHP】php 对比2个数组是否一样
- 在 PHP 中,可以使用 array_diff 和 array_intersect 函数来比较两个数组是否相同。同时,还可以使用 == 或 === 运算符来比较两个数组是否相等。array_diff 函数array_diff 函数可以比较两个数组的差集,即找出在第一个数组中出现的元素,但是在第二个数组中不存在的元素。示例代码:$array1 = array(1, 2, 3); $array2 = array(1, 3
- 【PHP】如何使用PHP在微信小程序中实现AI功能?
- 如何使用PHP在微信小程序中实现AI功能?随着人工智能的发展,AI(Artificial Intelligence,人工智能)技术被广泛应用于各个领域。微信小程序作为一种强大的移动应用开发平台,也可以集成AI功能,为用户提供更智能的服务。本文将介绍如何使用PHP语言在微信小程序中实现AI功能,并且给出具体的代码示例。首先,我们需要了解微信小程序提供的开发接口和AI技术的实现方案。微信小程序提供了开放平台接口,可以通过接口与后端服务器进行交互。AI技术方面,我们可以选择使用开源的机器学习
- 【PHP】thinkphp5.1+workman+jsonRpc
- 1.下载jsonRpc包放到vendor目录下 2.启动文件 3.启动效果:启动命令php allserver.php start 4.RpcClient Rpc客户端+RpcClient Rpc服务端 访问:http://localhost/product/public/index/RpcTest/rpctest 报错:stream_socket_client(): unable to connect to tcp://127.0.0.1:2015 (由于目标计算机积极拒绝,无法连接。
- 【PHP】php手动加载vendor第三方库
- 方式一:手动配置autoload文件方式二:在composer.json 中 调整 autoload场景不知道做php开发的小伙伴有没有遇到这样的痛点:使用第三方框架时安装的依赖包,你接手时候执行 composer update/insetall 时候总是超时或者安装时候总是报某个依赖包于其冲突。导致浪费大量时间去调整,最终无功而返。场景复现:我在一个旧的项目包上,想下载一个依赖包,执行安装时,总是包版本和现在不兼容或者一些依赖的问题。切换了镜像也是如此,所以考虑不如手动安装来的快~方案只需要手
栏目分类全部>