返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php中文字符串提取方法,preg_replace 和preg_match_all区别
  • 458
分享到

php中文字符串提取方法,preg_replace 和preg_match_all区别

php开发语言 2023-08-31 17:08:00 458人浏览 薄情痞子
摘要

在PHP中,可以利用以下两种函数来只提取字符串的中文字符 preg_replace()函数 preg_match_all()函数 方法1:使用preg_match_all()函数 preg_match_all()函数配合正则表达式“/

PHP中,可以利用以下两种函数来只提取字符串的中文字符

  • preg_replace()函数

  • preg_match_all()函数

方法1:使用preg_match_all()函数

preg_match_all()函数配合正则表达式/[\x{4e00}-\x{9fff}]+/u”可以过滤字符串,只获取中文字符。

会将匹配的中文字符一个个存入数组中(该数组由第三个参数指定)。

登录后复制

然后可以使用join()函数将结果值拼接成一个字符串。

join('',$arr[0])

登录后复制

说明:

1)preg_match_all()函数

preg_match_all()函数会搜索字符串中所有可以和正则表达式匹配的结果

preg_match_all(pattern,subject,matches,flags,offset)

登录后复制

参数说明如下:

  • pattern:要搜索的模式,也就是定义好的正则表达式;
  • subject:要搜索的字符串;
  • matches:可选参数(多维数组),用来存放所有匹配的结果, 数组排序通过 $flags 指定;
  • flags:可选参数,可以结合下面几个标记使用(注意不能同时使用 PREG_PATTERN_ORDER 和 PREG_SET_ORDER):
    • PREG_PATTERN_ORDER:结果排序为 $matches[0] 保存完整模式的所有匹配,$matches[1] 保存第一个子组的所有匹配,以此类推。
    • PREG_SET_ORDER:结果排序为 $matches[0] 包含第一次匹配得到的所有匹配(包含子组), $matches[1] 是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。
    • PREG_OFFSET_CAPTURE:如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。注意这会改变 $matches 中的每一个匹配结果字符串元素,使其成为一个第 0 个元素为匹配结果字符串,第 1 个元素为匹配结果字符串在 subject 中的偏移量。
  • offset:可选参数,$offset 用于从目标字符串中指定位置开始搜索(单位是字节)。

preg_match_all() 函数可以返回 pattern 的匹配次数(可能是 0),如果发生错误则返回 FALSE。

2)join()函数

join() 函数返回一个由数组元素组合成的字符串。

join() 函数是 implode() 函数的别名。

join(separator,array)

登录后复制

  • separator:可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。

  • array:必需。要组合为字符串的数组。

返回值:返回一个由数组元素组合成的字符串。

方法2:使用preg_replace()函数

preg_match_all()函数配合正则表达式“/[^\x{4E00}-\x{9FFF}]+/u”搜索字符串中的非中文字母,并将其替换成空字符''即可。

phpheader("Content-type:text/html;charset=utf-8");$str= 'php中文网!-=1548';echo $str."
";$pattern = "/[^\x{4E00}-\x{9FFF}]+/u";$newstr=preg_replace($pattern,'', $str);preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr);var_dump($newstr);?>

登录后复制

说明:preg_replace()

preg_replace() 函数可以执行正则表达式的搜索和替换,是一个强大的字符串替换处理函数,该函数的语法格式如下:

preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])

登录后复制

参数说明如下:

  • $pattern:要搜索的模式,可以使一个字符串或字符串数组;
  • $replacement:用于替换的字符串或字符串数组。如果这个参数是一个字符串,并且 $pattern 是一个数组,那么所有的模式都使用这个字符串进行替换。如果 $pattern 和 $replacement 都是数组,每个 $pattern 使用 $replacement 中对应的元素进行替换。如果 $replacement 中的元素比 $pattern 中的少,多出来的 $pattern 使用空字符串进行替换。
  • $subject:要进行搜索和替换的字符串或字符串数组,如果 $subject 是一个数组,搜索和替换回在 $subject 的每一个元素上进行, 并且返回值也会是一个数组。
  • $limit:可选参数,每个模式在每个 $subject 上进行替换的最大次数。默认是 -1(无限)。
  • $count:可选参数,如果指定,将会被填充为完成的替换次数。

如果 $subject 是一个数组,preg_replace() 函数会返回一个数组,其他情况下返回一个字符串。

如果函数 preg_replace() 搜索到匹配项,则会返回被替换后的 $subject,否则返回没有改变的 $subject。preg_replace() 函数的每个参数(除了参数 $limit)都可以是一个数组。如果参数 $pattern 和参数 $replacement 都是数组,那么该函数将以其键名在数组中出现的顺序来进行处理。如果发生错误,则返回 NULL。

参数 $replacement 中可以包含后向引用 \\n 或 $n,语法上首选后者。每个这样的引用将被匹配到的第 n 个捕获子组捕获到的文本替换。n 可以是 0-99,\\0 和 $0 代表完整的模式匹配文本。


以上就是关于php中文字符串提取方法

来源地址:https://blog.csdn.net/qikexun/article/details/130957483

--结束END--

本文标题: php中文字符串提取方法,preg_replace 和preg_match_all区别

本文链接: https://lsjlt.com/news/386342.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • php中文字符串提取方法,preg_replace 和preg_match_all区别
    在php中,可以利用以下两种函数来只提取字符串的中文字符 preg_replace()函数 preg_match_all()函数 方法1:使用preg_match_all()函数 preg_match_all()函数配合正则表达式“/...
    99+
    2023-08-31
    php 开发语言
  • PHP字符串中提取文件名的实例方法
    第一种: 获取不带后缀的文件名,直接上代码: 就是直接用basename()函数就可以返回路径中的文件名部分,其语法是“basename(path,suffix)”,其中参数suff...
    99+
    2024-04-02
  • 怎么在PHP字符串中提取文件名
    这篇文章主要讲解了“怎么在PHP字符串中提取文件名”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在PHP字符串中提取文件名”吧!第一种:获取不带后缀的文件名,直接上代码:就是直接用bas...
    99+
    2023-06-20
  • php中null和空字符串有什么区别
    php中null和空字符串有什么区别?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。空字符串''和NULL的区别PHP中空字符串和NULL都是以值...
    99+
    2023-06-15
  • 详解Python3中字符串中的数字提取方法
    逛到一个有意思的博客在里面看到一篇关于ValueError: invalid literal for int() with base 10错误的解析,针对这个错误,博主已经给出解决办法,使用的是re.sub...
    99+
    2022-06-04
    字符串 详解 数字
  • python怎么提取字符串中的文字
    Python可以使用正则表达式或者字符串处理函数来提取字符串中的文字。以下是两种常见的方法:1. 使用正则表达式:可以使用`re`模...
    99+
    2023-08-26
    python
  • 聊聊php提取字符串前几个字符的几种方法
    在PHP编程中,字符串操作是最常见的操作之一。有时候需要截取字符串的前几个字符,以满足程序的需求。本文将介绍PHP中如何取字符串前几个字符。PHP语言提供了多种方法来截取字符串,以下是三种最常用的方法:使用substr()函数来提...
    99+
    2023-05-14
  • PHP中文字符串截取技巧:告别mb_substr()
    在PHP开发中,经常会遇到需要对中文字符串进行截取的情况。传统上,我们通常会使用mb_substr()函数来处理中文字符的截取,但其性能较差且不够易读。本文将介绍一些新的中文...
    99+
    2024-03-15
    php 字符串 截取
  • 如何在 PHP 中从字符串中提取数字
    在本文中,我们将介绍在 PHP 中从字符串中提取数字的方法。 使用 preg_match_all() 函数的方法 使用 filter_variable() 函数 使用 preg...
    99+
    2024-02-27
  • PHP怎么快速从字符串中提取文件名
    本篇内容主要讲解“PHP怎么快速从字符串中提取文件名”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP怎么快速从字符串中提取文件名”吧!本文的主题是快速从指定的字符串中提取文件名,首先大家要知...
    99+
    2023-06-20
  • PHP中怎么截取中文字符串
    这期内容当中小编将会给大家带来有关PHP中怎么截取中文字符串,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。截取GB2312中文字符串< php    ...
    99+
    2023-06-17
  • Java中截取字符串方法
    java中对字符串进行截取 通过subString()方法来进行字符串截取,返回字符串中的子字符串,在java中有两种用法 //示例代码public static void main(String[] args) { Str...
    99+
    2023-08-16
    java 开发语言 servlet
  • linux怎么在文件中提取字符串
    在Linux中,你可以使用以下命令来提取文件中的字符串:1. grep命令:grep命令可以在文件中查找匹配给定模式的字符串,并将其...
    99+
    2023-10-08
    linux
  • php中字符串截取的方法是什么
    这篇文章给大家分享的是有关php中字符串截取的方法是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。方法:1、用“substr(字符串,开始位置,截取长度)”语句;2、用“mb_substr...
    99+
    2023-06-15
  • PHP字符串mbstring处理中文字符串的具体方法是什么
    这篇文章给大家介绍PHP字符串mbstring处理中文字符串的具体方法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。大家通过对PHP的学习,可以运用这一高级语言创建一个性能较高的网站。对于初学者来说,对于PHP字...
    99+
    2023-06-17
  • php如何实现中文字符串截取
    这篇文章主要讲解了“php如何实现中文字符串截取”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何实现中文字符串截取”吧!在php中,可以利用mb_substr()函数来截取...
    99+
    2023-06-20
  • C++中两种字符串定义方式和区别介绍
    目录前言概念定义方式计算机的存储方式总结前言 在学习字符串这方面的内容时,发现字符串定义的两种方式虽然内容相同但还是有细微的区别 概念 字符串就是一串用双引号连接起来的字符串字面值,...
    99+
    2024-04-02
  • MySQL字符串类型中VARCHAR和CHAR的区别
    前述VARCHAR和CHAR是两种最主要的字符串类型。不幸的是,很难精确地解释这些值是怎么存储在磁盘和内存中的,因为这跟存储引擎的具体实现有关。下面的描述假设使用的存储引擎是InnoDB和/或者MyISAM...
    99+
    2024-04-02
  • node.js读取文件到字符串的方法
    本文实例讲述了node.js读取文件到字符串的方法。分享给大家供大家参考。具体分析如下: Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始。比较独特的是,Nod...
    99+
    2022-06-04
    字符串 文件 方法
  • 使用python怎么提取字符串的中英文
    本篇文章为大家展示了使用python怎么提取字符串的中英文,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一. re中的sub函数使用Python 的re模块,re模块提供了re.sub用于替换字符串...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作