百科狗-知识改变命运!
--

preg_split() - php 正则表达式(PCRE)

是丫丫呀12个月前 (11-21)阅读数 43#技术干货
文章标签字符串

preg_split()

(PHP 4, PHP 5, PHP 7)

通过一个正则表达式分隔字符串

说明

preg_split(string $pattern,string $subject[,int $limit= -1[,int $flags= 0]]): array

通过一个正则表达式分隔给定字符串.

参数

$pattern

用于搜索的模式,字符串形式。

$subject

输入字符串

$limit

如果指定,将限制分隔得到的子串最多只有$limit个,返回的最后一个子串将包含所有剩余部分。$limit值为-1, 0或null时都代表"不限制",作为php的标准,你可以使用null跳过对$flags的设置。

$flags

flags可以是任何下面标记的组合(以位或运算|组合):PREG_SPLIT_NO_EMPTY如果这个标记被设置,preg_split()将仅返回分隔后的非空部分。PREG_SPLIT_DELIM_CAPTURE如果这个标记设置了,用于分隔的模式中的括号表达式将被捕获并返回。PREG_SPLIT_OFFSET_CAPTURE

preg_split() - php 正则表达式(PCRE)

如果这个标记被设置,对于每一个出现的匹配返回时将会附加字符串偏移量.注意:这将会改变返回数组中的每一个元素,使其每个元素成为一个由第0个元素为分隔后的子串,第1个元素为该子串在$subject中的偏移量组成的数组。

返回值

返回一个使用$pattern边界分隔$subject后得到的子串组成的数组,或者在失败时返回FALSE

范例

preg_split()示例:获取搜索字符串的部分

以上例程会输出:

Array
(
    [0] => hypertext
    [1] => language
    [2] => programming
)

将一个字符串分隔为组成它的字符

以上例程会输出:

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

分隔一个字符串并获取每部分的偏移量

以上例程会输出:

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )
    [1] => Array
        (
            [0] => language
            [1] => 10
        )
    [2] => Array
        (
            [0] => programming
            [1] => 19
        )
)

注释

Tip

如果你不需要正则表达式功能,可以有更快(并且更简单)的选择比如explode()或str_split()。

Tip

如果没有成功匹配,将会返回一个数组,包含了单个元素,即输入的字符串。

参见

  • PCRE 模式
  • preg_quote()转义正则表达式字符
  • implode()将一个一维数组的值转化为字符串
  • preg_match()执行匹配正则表达式
  • preg_match_all()执行一个全局正则表达式匹配
  • preg_replace()执行一个正则表达式的搜索和替换
  • preg_last_error()返回最后一个PCRE正则执行产生的错误代码
Sometimes PREG_SPLIT_DELIM_CAPTURE does strange results.

Produces:
Array
(
  [0] => Lorem ipsum dolor
  [1] => sit amet 
  [2] => consec
  [3] => tet
  [4] => uer
)
So that the delimiter patterns are missing. If you wanna get these patters remember to use parentheses.

Produces:
Array
(
  [0] =>  [1] => Lorem ipsum dolor
  [2] =>  [3] => sit amet 
  [4] =>  [5] => consec
  [6] => 
  [7] => tet
  [8] => 
  [9] => uer
  [10] =>  [11] => .
)
Extending m.timmermans's solution, you can use the following code as a search expression parser:

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)