php中preg正则函数使用

1.preg_match和preg_match_all的区别
preg_match和 preg_match_all区别是preg_match只匹配一次。而preg_match_all全部匹配,直到字符串结束。例:

<?php
//注:正则 /a.+?e/ 是非贪婪模式(因为量词‘+’后面加上了‘?’),如果使用 /a.+?e/U 则变回了贪婪模式
preg_match("/a.+?e/","abcdefgabcdefgabcdefg",$out1);
preg_match_all("/a.+?e/","abcdefgabcdefgabcdefg",$out2);
var_dump($out1);
var_dump($out2);
/*
输出:
array (size=1)
  0 => string 'abcde' (length=5)

array (size=1)
  0 =>
    array (size=3)
      0 => string 'abcde' (length=5)
      1 => string 'abcde' (length=5)
      2 => string 'abcde' (length=5)
 */
?>

2.贪婪模式和非贪婪模式的区别
如:String str="abcaxc";
  Patter p="ab*c";
贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c)。
非贪婪匹配:就是匹配到结果就好,较少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab*c)。
例:

<?php
$str = "http://www.baidu/.com?url=www.sina.com/";
preg_match("/http:(.*)com/", $str, $matches1); //贪婪匹配
var_dump($matches1);

preg_match("/http:(.*?)com/", $str, $matches2); //非贪婪匹配(量词'*'后面跟上了'?')
var_dump($matches2);

/*
array (size=2)
  0 => string 'http://www.baidu/.com?url=www.sina.com' (length=38)
  1 => string '//www.baidu/.com?url=www.sina.' (length=30)

array (size=2)
  0 => string 'http://www.baidu/.com' (length=21)
  1 => string '//www.baidu/.' (length=13)
 */
?>

3.preg_match_all参数PREG_PATTERN_ORDER(默认)和PREG_SET_ORDER的区别

<?php
echo('PREG_PATTERN_ORDER');
preg_match_all("<[^>]+>(.*)[^>]+>U",
    "start: this is a testend",
    $out1);
var_dump($out1);

echo('PREG_SET_ORDER');
preg_match_all("<[^>]+>(.*)[^>]+>U",
    "start: this is a testend",
    $out2, PREG_SET_ORDER);
var_dump($out2);

/*
PREG_PATTERN_ORDER
array (size=2)
  0 =>
    array (size=3)
      0 => string 'start: ' (length=14)
      1 => string 'this is a test' (length=21)
      2 => string 'end' (length=10)
  1 =>
    array (size=3)
      0 => string 'start: ' (length=7)
      1 => string 'this is a test' (length=14)
      2 => string 'end' (length=3)

PREG_SET_ORDER
array (size=3)
  0 =>
    array (size=2)
      0 => string 'start: ' (length=14)
      1 => string 'start: ' (length=7)
  1 =>
    array (size=2)
      0 => string 'this is a test' (length=21)
      1 => string 'this is a test' (length=14)
  2 =>
    array (size=2)
      0 => string 'end' (length=10)
      1 => string 'end' (length=3)
 */
?>

延伸阅读:preg_match_all使用实例

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索字符串
, 模式
, 区别
, preg match
, 贪婪
, 贪婪模式
, preg_match
, 非贪婪模式
, 非贪婪
, preg_match_all
, 贪婪匹配
match函数
php 正则 pregmatch、php preg replace函数、php preg match函数、php preg match 使用、php 正则函数,以便于您获取更多的相关知识。

时间: 2024-09-10 12:14:47

php中preg正则函数使用的相关文章

PHP中的正则函数

PHP正则表达式主要用于字符串的模式分割.匹配.查找及替换操作.使用正则表达式在某些简单的环境下可能效率不高,因此如何更好的使用PHP正则表达式需要综合考虑. 我的PHP正则入门,是起源于网上的一篇文章,这篇文章由浅入深的阐述了PHP正则表达式使用的方法,我觉得是一个很好的入门材料,不过学成还是要 靠个人,在使用的过程中,还是会不断地忘记,因此反反复复的阅读了这篇文章有四五遍,对于其中一些比较困难的知识点,甚至要用很久才能消化,但是只要能见 坚持着看完,你会发现自己对于正则的运用能力就会显著提高

PHP正则表达式:PHP中的正则函数

PHP正则表达式主要用于字符串的模式分割.匹配.查找及替换操作.使用正则表达式在某些简单的环境下可能效率不高,因此如何更好的使用PHP正则表达式需要综合考虑. 我的PHP正则入门,是起源于网上的一篇文章,这篇文章由浅入深的阐述了PHP正则表达式使用的方法,我觉得是一个很好的入门材料,不过学成还是要 靠个人,在使用的过程中,还是会不断地忘记,因此反反复复的阅读了这篇文章有四五遍,对于其中一些比较困难的知识点,甚至要用很久才能消化,但是只要能见 坚持着看完,你会发现自己对于正则的运用能力就会显著提高

PHP中preg

  这篇文章主要介绍了PHP中preg_match函数正则匹配的字符串长度问题,如果你也遇到了preg_match正则提取内容时总是空白或提取不到的话,那就可能是遇到了这个问题啦,需要的朋友可以参考下 项目中,用preg_match正则提取目标内容,死活有问题,代码测得死去活来. 后来怀疑PHP 的preg_match有字符串长度限制,果然,发现"pcre.backtrack_limit "的值默认只设了100000. 解决办法:ini_set('pcre.backtrack_limi

PHP中正则的使用

正则表达式,作为一种快速.便捷的处理字符串的工具,在各种编程语言中都有着广泛的用途,通过在PHP中的一些使用,下面记录一下关于PHP中正则使用的一些技巧. 我的正则入门,是起源于网上的一篇文章[1],这篇文章由浅入深的阐述了正则使用的方法,我觉得是一个很好的入门材料,不过学成还是要靠个人,在使用的过程中,还是会不断地忘记,因此反反复复的阅读了这篇文章有四五遍,对于其中一些比较困难的知识点,甚至要用很久才能消化,但是只要能见坚持着看完,你会发现自己对于正则的运用能力就会显著提高. 正则表达式: 用

PHP正则表达式使用的方法

PHP正则表达式主要用于字符串的模式分割.匹配.查找及替换操作.使用正则表达式在某些简单的环境下可能效率不高,因此如何更好的使用PHP正则表达式需要综合考虑. 我的PHP正则入门,是起源于网上的一篇文章,这篇文章由浅入深的阐述了PHP正则表达式使用的方法,我觉得是一个很好的入门材料,不过学成还是要 靠个人,在使用的过程中,还是会不断地忘记,因此反反复复的阅读了这篇文章有四五遍,对于其中一些比较困难的知识点,甚至要用很久才能消化,但是只要能见 坚持着看完,你会发现自己对于正则的运用能力就会显著提高

PHP 正则的使用基础入门_正则表达式

我的正则入门,是起源于网上的一篇文章[1],这篇文章由浅入深的阐述了正则使用的方法,我觉得是一个很好的入门材料,不过学成还是要靠个人,在使用的过程中,还是会不断地忘记,因此反反复复的阅读了这篇文章有四五遍,对于其中一些比较困难的知识点,甚至要用很久才能消化,但是只要能见坚持着看完,你会发现自己对于正则的运用能力就会显著提高. 正则表达式: 用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作. PHP中的正则函数: php中有两套正则函数,两者功能差不多,分

PHP 正则的使用基础入门

我的正则入门,是起源于网上的一篇文章[1],这篇文章由浅入深的阐述了正则使用的方法,我觉得是一个很好的入门材料,不过学成还是要靠个人,在使用的过程中,还是会不断地忘记,因此反反复复的阅读了这篇文章有四五遍,对于其中一些比较困难的知识点,甚至要用很久才能消化,但是只要能见坚持着看完,你会发现自己对于正则的运用能力就会显著提高. 正则表达式: 用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作. PHP中的正则函数: php中有两套正则函数,两者功能差不多,分

PHP 正则表达式的几则使用技巧

我的PHP正则入门,是起源于网上的一篇文章,这篇文章由浅入深的阐述了PHP正则表达式使用的方法,我觉得是一个很好的入门材料,不过学成还是要 靠个人,在使用的过程中,还是会不断地忘记,因此反反复复的阅读了这篇文章有四五遍,对于其中一些比较困难的知识点,甚至要用很久才能消化,但是只要能见 坚持着看完,你会发现自己对于正则的运用能力就会显著提高. PHP正则表达式的定义: 用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作. PHP中的正则函数: PHP中有两套

PHP正则表达式的使用技巧

PHP正则表达式的定义: 用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作. PHP中的正则函数: PHP中有两套正则函数,两者功能差不多,分别为: 一套是由PCRE(Perl Compatible Regular Expression)库提供的.使用"preg_"为前缀命名的函数: 一套由POSIX(Portable Operating System Interface of Unix )扩展提供的.使用以"ereg_"为