PHP 获取某个字符串中中文之前的字符。该字符串可能不包含中文
可以使用正则表达式来匹配中文字符,然后再截取中文字符之前的部分。
示例代码:
$str = 'Hello, world! 你好';
// 匹配中文字符
preg_match('/[\x{4e00}-\x{9fa5}]+/u', $str, $matches);
if (!empty($matches)) {
// 中文字符的起始位置
$start = strpos($str, $matches[0]);
// 截取中文字符之前的部分
$result = substr($str, 0, $start);
} else {
// 字符串中不包含中文字符
$result = $str;
}
echo $result; // 输出:Hello, world!
解释:
首先使用正则表达式 /[\x{4e00}-\x{9fa5}]+/u 匹配中文字符,其中 \x{4e00}-\x{9fa5} 表示 Unicode 编码范围内的中文字符。如果匹配到了中文字符,则获取第一个匹配结果的起始位置,然后使用 substr() 函数截取中文字符之前的部分。如果没有匹配到中文字符,则直接返回原字符串
原文地址: https://www.cveoy.top/t/topic/eO6W 著作权归作者所有。请勿转载和采集!