php 匹配替换中文

1、匹配中文

$str = "中文“;
preg_match_all("/[\x{4e00}-\x{9fa5}]+/u",$str,$match);

2、替换中文:

在所在的php文件里,要加上

mb_internal_encoding("UTF-8");
mb_regex_encoding("UTF-8");

这样才能支持多字节进行模式匹配。详细介绍:http://blog.chinaunix.net/uid-20279807-id-1711213.html

3、php提供了四个替换函数,分别是str_replace,preg_replace,mb_ereg_replace,ereg_replace(在php7.1已经摒弃掉)

在替换中文时,发现用preg_replace替换中文最合适.

str_replace 不支持正则表达式,不能完全匹配,导致局部字段被替换。例如: $str = "模块一 模块一断电",$str = str_replace("模块一","module1",$str);,导致"模块一断电"被替换成"module1断电"。

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )  支持$pattern,$replacement 以数组的方式进行查找替换,但数组过多时,进行搜索匹配,耗CPU严重。

mb_ereg_replace 支持正则表达式,但不用分隔符//进行匹配,但使用mb_ereg_replace,发现有些中文匹配不了。具体原因暂不清楚。

时间: 2024-10-14 21:12:03

php 匹配替换中文的相关文章

正则表达式之匹配替换

最近做word脚注用到了正则表达式的匹配替换功能.我提取rtf字符串中书签的名称,更改名称后,再替换到字符串中.看代码: 1 var range = fd_Field.Result.Footnotes[1].Range; 18 str_Content = Regex.Replace(str_Content, @"\\bkmk(start|end) _(\w+)}", "\\bkmk$1 _$2_" + fid + "}", RegexOption

【转载】Python使用中文正则表达式匹配指定中文字符串的方法示例

本文实例讲述了Python使用中文正则表达式匹配指定中文字符串的方法.分享给大家供大家参考,具体如下: 业务场景: 从中文字句中匹配出指定的中文子字符串 .这样的情况我在工作中遇到非常多, 特梳理总结如下. 难点: 处理GBK和utf8之类的字符编码, 同时正则匹配Pattern中包含汉字,要汉字正常发挥作用,必须非常谨慎.推荐最好统一为utf8编码,如果不是这种最优情况,也有酌情处理. 往往一个具有普适性的正则表达式会简化程序和代码的处理,使过程简洁和事半功倍,这往往是高手和菜鸟最显著的差别.

Vim正则表达式匹配替换字符串

/********************************************************************** * Vim正则表达式匹配替换字符串 * 说明: * 用Vim用了几年了,平时也就替换字符串比较多,很少用正则表达式替换, * 今天在修改HTML文档的时候,不想一个一个去替换. * * 2018-6-1 深圳 宝安西乡 曾剑锋 ****************************************************************

PHP正则匹配替换图片地址

网上能找到很多匹配图片src的正则表达式和替换的实例,都是然并卵,不能马上解决问题. 只是要找到src里的那一段给替换掉就行了. 给一段内容: $content = '<img src="http://www.domainname.com/600_0_100_1/1439035192.4102/1e45426fe3d5410eedd45a82d9a0aead.jpg" rel="12375880" />'; 正则匹配替换:preg_replace(&qu

python的N个小功能(文件内容的匹配替换)

# -*- coding: utf-8 -*- """ Created on Fri Feb 17 20:25:05 2017 @author: who """ import os import os.path import re import string rootdir=r'D:\test' for parent, dirnames, filenames in os.walk(rootdir):   # 三个参数:分别返回1.父目录 2.所有

Java常用的几个正则方法(查找索引,匹配,替换)

正则表达式是一种为了方便操作字符串而约定的规则.在PHP,JAVA等很多主流语言都有正则的使用.最常见的用法莫过于查找,替换和匹配.下面作为简单的总结,通过用简单的例子,记录下常用的几个方法. 关于正则如何使用,就不解释了,因为网上也能找到非常多的相关资料可以看.这里只将几个常用的方法总结: 查找索引 通过关键字符串,去在目标内容中去匹配查找它的位置,这应该是最常见的用法. String类也同样提供了indexOf() 方法去实现相同的效果.但indexOf()只能从开头的位置或者特定位置去查找

Javascript正则表达式匹配替换

根据正则表达式的匹配结果将匹配项替换为*function regReplace(reg, str){ var result, //最终输出结果 out, //每次运行正则exec返回的匹配结果. index, //匹配项在字符串中位置 length; //匹配项长度 result = str.split(""); //将待匹配的字符串分开成数组,等待处理 while(out = reg.exec(str)){ //当匹配成功返回out数组,如果没有匹配项或达到字符串末尾返回null l

正则匹配 替换..追加..

这里都是以 图片中的元素为例: 匹配出IMG标签中alt的值: 1 Regex reg = new Regex(@"(?is)(?<=<img[^>]*)[^""]*(?=""[^>]*>)"); 替换alt 内容: var replace = "alt=' 要替换的内容 "; source = Regex.Replace(source, "alt=\"\""

ruby正则表达以及匹配替换

ruby正则表达式分两种,一种是转义的,一种是不转义的,不转义的我还没用过,所以不知道效果怎么样,这里只讲讲转义的,大体来讲,所有的表达式都被包含在两个/中间,中括号[]内的代表或,就是任意一个,单个字符匹配使用的是\?(?代表要匹配的特殊字符,比如我要匹配右中括号,那么我就可以写\])恩,基本上就这样,下面给出具体范例: /a/ :匹配字符a /[Aa]b/:匹配字符Ab或者ab /\s/匹配所有的空白,比如空格.换行.tab键 /\n/匹配新的一行 /\r/匹配换行,相当于enter键,注: