文档章节

PHP 正则表达式分割 preg_split 与 split 函数

ywppengpeng
 ywppengpeng
发布于 2016/11/14 09:27
字数 577
阅读 110
收藏 1

preg_split()

preg_ split() 函数用于正则表达式分割字符串。

语法:

array preg_split( string pattern, string subject [, int limit [, int flags]] )

返回一个数组,包含 subject 中沿着与 pattern 匹配的边界所分割的子串。

参数说明:
参数 说明
pattern 正则表达式
subject 需要匹配分割的对象
limit 可选,如果指定了 limit ,则最多返回 limit 个子串,如果 limit 是 -1,则意味着没有限制,可以用来继续指定可选参数 flags
flags

设定 limit 为 -1 后可选,可以是下列标记的任意组合(用按位或运算符 | 组合):

  1. PREG_SPLIT_NO_EMPTY:preg_split() 只返回非空的成分
  2. PREG_SPLIT_DELIM_CAPTURE:定界符模式中的括号表达式也会被捕获并返回
  3. PREG_SPLIT_OFFSET_CAPTURE:对每个出现的匹配结果也同时返回其附属的字符串偏移量。注意这改变了返回的数组的值,使其中的每个单元也是一个数组,其中第一项为匹配字符串,第二项为其在 subject 中的偏移量。

例子 1 :

<?php
$str = "php mysql,apache ajax";
$keywords = preg_split("/[\s,]+/", $str);
print_r($keywords);
?>

输出结果为:

Array
(
    [0] => php
    [1] => mysql
    [2] => apache
    [3] => ajax
)

例子 2 :

<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

输出结果为:

(
    [0] => s
    [1] => t
    [2] => r
    [3] => i
    [4] => n
    [5] => g
)

例子 3 :

<?php
$str = "php mysql,apache ajax";
$keywords = preg_split("/[\s,]+/", $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($keywords);
?>

输出结果为:

Array
(
    [0] => Array
        (
            [0] => php
            [1] => 0
        )
 
    [1] => Array
        (
            [0] => mysql
            [1] => 4
        )
 
    [2] => Array
        (
            [0] => apache
            [1] => 10
        )
 
    [3] => Array
        (
            [0] => ajax
            [1] => 17
        )
)

split()

split() 函数同 preg_split() 类似,用正则表达式将字符串分割到数组中,返回一个数组,但推荐使用 preg_split() 。

语法:

array split( string pattern, string string [, int limit] )

如果设定了 limit ,则返回的数组最多包含 limit 个单元,而其中最后一个单元包含了 string 中剩余的所有部分。如果出错,则返回 FALSE。

例子:

<?php
$date = "2008-08-08 20:00:01";
print_r( split('[- :]', $date) );
?>

输出结果:

Array
(
    [0] => 2008
    [1] => 08
    [2] => 08
    [3] => 20
    [4] => 00
    [5] => 01
)

提示

  1. 如果不需要正则表达式的功能,可以选择使用更快(也更简单)的替代函数如 explode()str_split()
  2. split() 函数对大小写敏感,如果在匹配字母字符时忽略大小写的区别,请使用用法相同的 spliti() 函数

© 著作权归作者所有

ywppengpeng
粉丝 5
博文 63
码字总数 32377
作品 0
西安
程序员
私信 提问
PHP函数preg_split的正确使用方法

PHP函数preg_split的正确使用方法 2009-11-26 18:49 佚名 CSDN 我要评论() 字号:T T PHP函数preg_split的语法为array preg_split ( string $pattern, string $subject [, int $limit [, in......

随智阔
2012/11/25
129
0
PHP中正则表达式回顾(1)

先复习一下php中常用的正则表达式常用函数。 1. pregmatch()和pregmatchall() int pragmatch($pattern,$subject,可选参数$matchs); 只进行一次匹配,返回值0或者1,即匹配到的次数,将匹配...

嗜学如命的小蚂蚁
2015/09/17
97
0
PHP 基础篇 - PHP 正则官方文档汇总

一、PCRE 正则语法 下面是 PHP 的 PCRE 正则语法(模式语法)相关文档,详情请查阅相关链接: 简介 分隔符 元字符 转义序列(反斜线) Unicode字符属性 锚 句点 字符类(方括号) 可选路径(|) 内...

天秤vs永恒
2018/02/06
20
0
PHP函数使用记录

array_flip:交换数组中的键和值 http://php.net/manual/zh/function.array-flip.php array_slice:从数组中取出一段 http://php.net/manual/zh/function.array-slice.php array_splice:把数......

专业填坑
2016/04/21
16
0
正则表达式之——POSIX正则表达式函数

POSIX正则表达是PHP编译器的默认风格,PHP中还提供了许多POSIX正则表达式函数,例如ereg()、eregi()、split()和sql_regcase()等。 1. ereg()函数 ereg()函数可以再字符串中查找与指定正则表达...

CoderAndy
2014/04/08
71
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7 安装 mysql5.7 版本(全)

centos 安装 版本说明 :centos7,mysql5.7 ,不是 centos7 可能有些命令不兼容 安装 mysql-server # 下载并安装 mysql yum wget -i -c http://dev.mysql.com/get/mysql57-community-relea......

sanri1993
22分钟前
3
0
Spring3.x升级到Spring4.x-5.x时关于MappingJacksonHttpMessageConverter的报错问题

在Spring4.x或者以上的版本强使用(不然会报错): org.springframework.http.converter.json.MappingJackson2HttpMessageConverter 如果是Spring4.0获者以下的版本可以使用MappingJacksonH...

code-ortaerc
25分钟前
3
0
OSG 渲染状态污染到其它节点怎么解决?

在根节点补上初始状态

洛克人杰洛
27分钟前
3
0
grid 布局 设置行列间距

本文转载于:专业的前端网站➪grid 布局 设置行列间距 <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="widt......

前端老手
39分钟前
3
0
spring-data-elasticsearch 和 Jackson 配合使用的bug

下面先简单描述项目。 项目依赖: dependencies { implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-elasticsearch', version: '2.1.0.RELEASE'......

Landas
40分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部