PHP preg_replace正则表达式涉及汉字乱码

一、需求

PHP preg_replace,替换省、市、区为空

二、实现

1、使用表达式["省","市","自治州","自治区"],出现了乱码

        $text = "浙江省";$pattern = '/["省","市","自治州","自治区"]/';$replacement = '';$result = preg_replace($pattern, $replacement, $text);echo $result;exit;

2、因为是汉字,1表达式的基础上添加/u 修饰符(表示使用 Unicode 编码),这样就不会乱码了;

        $text = "浙江省";$pattern = '/["省","市","自治州","自治区"]/u';$replacement = '';$result = preg_replace($pattern, $replacement, $text);echo $result;exit;

3、低版本php,不支持/u修饰符,可以换成正则表达式(省|市|区),无需添加/u修饰符,即可成功替换。

        $text = "浙江省";$pattern = '/(省|市|区)/';
//        $pattern = '/["省","市","自治州","自治区"]/u';$replacement = '';$result = preg_replace($pattern, $replacement, $text);echo $result;exit;

4、可以不是用正则替换,改为str_replace替换哦

        $text = "浙江省";
//        $pattern = '/["省","市","自治州","自治区"]/u';$replacement = '';
//        $result = preg_replace($pattern, $replacement, $text);$result = str_replace(["省","市","自治州","自治区"],$replacement,$text);echo $result;exit;

三、总结

1、中文汉字、中文字符匹配出现乱码,只针对["省","市","自治州","自治区"]表达式,需要添加/u修饰符,才不会乱码(php高版本支持);
其他表达式,比如(省|市|区),可以随意匹配,不会出现中文乱码。

2、可以使用str_replace代替preg_replace

3、在 PHP 中,使用 u 修饰符允许正则表达式处理 Unicode 字符。这个修饰符告诉 PHP 引擎将模式和目标字符串视为 UTF-8 编码的字符序列,以便正确处理 Unicode 字符。

u 修饰符最早是在 PHP 4.1.0 版本中引入的,并且需要 PHP 在 4.2.3 版本或更高版本的环境中才能正常工作。因此,如果您使用的是 PHP 4.2.3 或更高版本,您就可以放心地在正则表达式中使用 u 修饰符来处理 Unicode 字符。

例如,在处理中文字符时,特别是需要匹配中文字符范围内的内容时,使用 u 修饰符非常有用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++(25): C++17探索:std::optional

1. 概述 std::optional是C17标准引入的一个新的标准库组件。这是一个轻量级的容器,旨在以类型安全的方式包装可能为空的值。std::optional为处理可能缺失的数据提供了一种优雅而简洁的方法,这在以往通常需要使用专门的“存在”标志或复杂的错误处理机制。…

怎样让拼多多新店靠前?怎么做好拼多多店铺生意?

在拼多多这个日益激烈的电商平台上,新店铺如何脱颖而出、提升排名,成为了许多卖家朋友关注的焦点。那么接下来跟各位卖家详细介绍怎样让拼多多新店靠前,以及怎么做好拼多多店铺生意。 一、怎样让拼多多新店靠前 1、完善店铺信息 完善店铺信…

超声波清洗机哪家好一点?四款无比卓越精品不可错过

在日常生活中,眼镜成为了我们不可或缺的伙伴,无论是阅读书籍、工作还是享受自然风光,清晰的视野总是至关重要。然而,眼镜上不可避免地会沾染灰尘、油脂甚至细菌,影响我们的视觉体验。传统的眼镜清洗方法虽然简单&#…

从0到1构建IM系统之技术选型

由于本人是一个以JAVA为主要编程语言的全栈工程师,所以这次的技术选型也是基于JAVA体系为基础来进行构建。 开发框架: spring 全家桶 功能强大并且覆盖全面,社区活跃,解决方案成熟,学习成本低(本人属于拿来…

JAVA学习-练习试用Java实现“Excel表列名称”

问题: 给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。 例如: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 示例 1: 输入:columnNumber 1 输出&#…

SpringBoot项目文件上传校验工具类

功能介绍 FileValidationUtils是一个工具类,主要用于验证上传的文件。以下是其主要功能和特点: 1. 文件类型验证:FileValidationUtils类中定义了一个MIME_TYPE_MAP,这个映射表包含了允许上传的文件类型和对应的MIME类型。在vali…

package.json的配置

package.json的配置参考 package.json文件是Node.js项目中的一个重要配置文件,用于存储项目的元数据和各种配置信息。 以下是一些常见的 package.json配置项: { "name": "my-project", // 项目名称,遵循npm的命名规范…

新人学习笔记之(JavaScript运算符)

目录 一、运算符 1.运算符(operator)也被称操作符,最用于实现赋值、比较和算数运算等功能的符号。 2.javascript中常用的有 二、算术运算符 1.算数运算符概述 2.浮点数的精度问题 3.表达式和返回值 三、递增和递减运算符 1.递增和递减运算符…

Python使用MQTT连接新版ONENet

Python MQTT 连接新版ONENet 简介 前几个教程我们使用mqtt.fx连接了新版的ONENet, 只是跑通了MQTT协议,但是在实际操作下还需要实现具体环境、具体设备的MQTT连接,本章教程将以Python MQTT的方式连接 ONENet 参考文档: paho-mqtt PyPI …

数据结构 顺序表

目录 1. 什么是数据结构?2. 顺序表2.1 线性表2.2 顺序表 3. 动态顺序表的实现 正文开始 1. 什么是数据结构? 在学习顺序表前,我们先来了解一下什么是数据结构:数据结构是计算机存储、组织数据的方式,具有一定逻辑关系…

ffprobe 使用文档介绍

ffprobe 摘要 命令格式:ffprobe [options] input_url功能:ffprobe 是一个多媒体分析工具,用于收集多媒体流中的信息,并以易于人类阅读和机器解析的方式打印出来。ffprobe 描述 信息收集:可以检查多媒体流使用的容器格式以及其中每个媒体流的格式和类型。URL 输入:如果输入…

用了那么久的可道云teamOS,居然才发现这个隐藏的功能:一键存图,无需下载

在日常的工作或学习中,我们在遇到喜欢的图片时,总会想要保存下来以备后用。 然而,传统的图片保存方式通常需要我们右键另存为,或者复制链接、打开下载工具,甚至可能需要跳转到其他应用或网页才能完成下载。 存在电脑本…

数据整理的Compact流程 (二)|OceanBase数据转储合并技术解读(二)

上篇文章《数据整理的Compact流程 (一)|OceanBase数据转储合并技术解读(二)》中,有讲解到,在OceanBase数据库中,当MemTable写满时,将其下刷到Mini SSTable的过程包含两个…

ubuntu移动硬盘重命名

因为在ubuntu上移动硬盘的名字是中文的,所以想要改成英文的。 我的方法: 将移动硬盘插到windows上,直接右键重命名。再插到ubuntu上名字就改变了。 别人的方法: ubuntu下如何修改U盘名字-腾讯云开发者社区-腾讯云 在自带的软件…

盘点10大灵动惊艳小演员❗谁是你的心头好?

盘点国内影视那些惊艳观众的小演员们无疑为影视作品注入了新的活力。以下是10个备受赞誉的小演员: 1.韩昊霖:凭借在《我和我的祖国》和《庆余年》中的出色表现 韩昊霖的演技赢得了观众和业界的广泛认可 他能够准确地把握角色的情感和细节,展…

海外大带宽云服务器有哪些优势

海外大带宽云服务器是指位于海外数据中心,提供高速网络连接和大量数据传输能力的云计算服务器。Rak部落小编为您整理发布海外大带宽云服务器的相关信息。 具体分析如下: 1. **全球覆盖与低延迟 - **广泛的地域布局**:在全球范围内建立了多个数…

雷达基数据绘制成雷达图

x波段雷达基数据绘制成雷达图 1.雷达基数据格式Z_RADR_I_ZR001_20240521020002_O_DOR_YLD2-D_CAP_FMT.bin.bz2 2.基数据读取 python f StandardData(i) # 新版本标准数据radarTime f.scantime # 获取雷达时次date_str radarTime.strftime(%Y-%m-%d %H:%M:%S)date_str d…

832. 翻转图像 - 力扣

1. 题目 给定一个 n x n 的二进制矩阵 image ,先 水平 翻转图像,然后 反转 图像并返回 结果 。 水平翻转图片就是将图片的每一行都进行翻转,即逆序。 例如,水平翻转 [1,1,0] 的结果是 [0,1,1]。 反转图片的意思是图片中的 0 全部被…

一.ffmpeg 将内存中的H264跟PCM 数据流合成多媒体文件

在有一些嵌入式平台中,H264数据流一般来自芯片内部的硬编码器, AAC音频数据则是通过采集PCM进行软编码,但是如何对它实时进行封装多媒体文件 ,参考ffmpeg example,花了一些时间终于实现了该功能。 流程图如下&#xf…

【Pandas】深入解析`pd.read_pickle()`函数

【Pandas】深入解析pd.read_pickle()函数 🌈 欢迎莅临我的个人主页👈这里是我深耕Python编程、机器学习和自然语言处理(NLP)领域,并乐于分享知识与经验的小天地!🎇 🎓 博主简介&…