PHP正则表达式之量词、元字符、修饰符

后端开发   发布日期:2023年05月28日   浏览次数:493

介绍

1、正则表达式中包含三种元素分别为:量词、元字符、修饰符

2、前导字符串:就是符号前面的一个字符或字符串

量词

  1. + 匹配任何至少包含一个前导字符串
  2. * 匹配任何包含零个或多个前导字符串
  3. ? 匹配任何包含零个或1个前导字符串
  4. . 匹配任意一个字符串
  5. {x} 匹配任何包含x个前导字符串
  6. {x,y} 匹配任何包含 x y 个前导字符串
  7. {x,} 匹配任何包含至少x个前导字符串
  8. ^ 匹配字符串的行首
  9. $ 匹配字符串的行尾
  10. | 选择符 匹配字符串的左边或者右边
  11. () 分组,提取

preg_match()函数 匹配成功返回1,失败返回0

  1. echo preg_match('/a+/','abc'); //返回1
  2. echo preg_match('/a*/','abc'); //返回1
  3. echo preg_match('/a?/','abc'); //返回1
  4. echo preg_match('/./','abc'); //返回1
  5. echo preg_match('/a{2}/','aabc'); //返回1
  6. echo preg_match('/a{2,5}/','aaabc'); //返回1
  7. echo preg_match('/a{2,}/','aaaaabc'); //返回1
  8. echo preg_match('/^a/','bac'); //返回0
  9. echo preg_match('/^a/','abc'); //返回1
  10. echo preg_match('/a$/','abc'); //返回0
  11. echo preg_match('/a$/','cba'); //返回1
  12. echo preg_match('/a|b/','a'); //返回1
  13. echo preg_match('/a|b/','b'); //返回1
  14. echo preg_match('/(abc)+/','abcd'); //返回1

元字符

  1. 元字符 说明
  2. [a-z] 匹配任何包含小写字母a-z的字符串
  3. [A-Z] 匹配任何包含大写字母A-Z的字符串
  4. [0-9] 匹配任何包含0-9的字符串
  5. [abc] 匹配任何包含小写字母a,b,c的字符串
  6. [^abc] 匹配任何不包含小写字母a,b,c的字符串
  7. [a-zA-Z0-9_] 匹配任何包含a-zA-Z0-9和下划线的字符串
  8. \w 匹配任何包含a-zA-Z0-9和下划线的字符串
  9. \W 匹配任何不包含a-zA-Z0-9和下划线的字符串
  10. \d 匹配任何包含数字字符
  11. \D 匹配任何非数字字符
  12. \s 匹配任何空白字符
  13. \S 匹配任何非空白字符
  14. \b 匹配是否到达了单词边界
  15. \B 匹配没有到达了单词边界
  16. \ 匹配正则中的特殊字符
  17. /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/im;
  18. echo preg_match('/[a-z]/','abc');//返回1
  19. echo preg_match('/[A-Z]/','ABC');//返回1
  20. echo preg_match('/[0-9]/','123');//返回1
  21. echo preg_match('/[abc]/', 'a');//返回1
  22. echo preg_match('/[^abc]/', 'd');//返回1
  23. echo preg_match('/[^a-zA-Z0-9_]/', 'aD45_');//返回1
  24. echo preg_match('/\w/', 'aD45_');//返回1
  25. echo preg_match('/\W/', 'aD45_');//返回0
  26. echo preg_match('/\d/', '123456');//返回1
  27. echo preg_match('/\D/', '123456');//返回0
  28. echo preg_match('/\d/', '123456');//返回1
  29. echo preg_match('/\s/', ' ');//返回1
  30. echo preg_match('/\S/', ' ');//返回0
  31. //单词尾部边界
  32. echo preg_match('/at\b/', 'cat');//返回1
  33. //头单词部边界
  34. echo preg_match('/\bat/', 'attribute');//返回1
  35. //没有到达边界
  36. echo preg_match('/\Bat/', 'attribute');//返回0
  37. //特殊字符 $ ^ * () + = {} [] | \\ : <>
  38. echo preg_match('/\$/', '$');//返回1

修饰符

  1. 修饰符 说明
  2. i 完全不区分大小写
  3. m 可以采用多行识别,遇到换行也承认匹配规则
  4. x 忽略掉规则模式中的空白字符
  5. A 强制从头开始匹配
  6. U 禁止贪婪匹配,只跟踪到最近的一个匹配符并结束
  1. //i 不区分大小写
  2. echo preg_match('/abcd/','AbcD');//返回0
  3. echo preg_match('/abcd/i','AbcD');//返回1
  4. //m 多行识别
  5. $str = '1a
  6. 1a';
  7. preg_match_all('/^1a/',$str,$arr);
  8. print_r($arr);
  9. //结果为Array ( [0] => Array ( [0] => 1a ) )
  10. //默认从头到尾匹配,所以只匹配到一个
  11. preg_match_all('/^1a/m',$str,$arr);//返回1
  12. print_r($arr);
  13. //结果为Array ( [0] => Array ( [0] => 1a [1] => 1a ) )
  14. //每行都会使用规则,所以匹配的到二个,注意第二行前面不要有空格避免干扰
  15. //x 忽略模式的空格
  16. echo preg_match('/a b/','ab');//返回0
  17. echo preg_match('/a b/x','ab');//返回1
  18. //A 强制开头匹配
  19. echo preg_match('/ab/','catabc');//返回1
  20. echo preg_match('/ab/A','catabc');//返回0
  21. echo preg_match('/ab/A','abcdef');//返回1
  22. //U 禁止贪婪匹配
  23. preg_match_all('/php\w+php/','php123phpphp456php',$arr);
  24. print_r($arr);
  25. //结果为Array ( [0] => Array ( [0] => php123phpphp456php ) )
  26. preg_match_all('/php\w+php/U','php123phpphp456php',$arr);
  27. print_r($arr);
  28. //结果为Array ( [0] => Array ( [0] => php123php [1] => php456php ) )
  29. //禁止贪婪匹配后,会就近匹配
  1. //风格函数
  2. //preg_grep()
  3. $arr = array('php5','php6','php7','css','html');
  4. $out = preg_grep('/php[0-9]/', $arr);
  5. print_r($out);
  6. //结果为Array ( [0] => php5 [1] => php6 [2] => php7 )
  7. //preg_match()
  8. echo preg_match('/php[0-9]/','php5');//返回1
  9. //preg_match_all()
  10. preg_match_all('/php[0-9]/','php5php6php7',$arr);
  11. print_r($arr);
  12. //结果为Array ( [0] => Array ( [0] => php5 [1] => php6 [2] => php7 ) )
  13. //preg_quote()
  14. echo preg_quote(' $ ^ * () + = {} [] | \\ : <>');
  15. //结果为 \$ \^ \* \(\) \+ \= \{\} \[\] \| \\ \: \<\>
  16. //preg_replace()
  17. echo preg_replace('/php/','python', 'php1php2php3');
  18. //结果为 python1python2python3
  19. //preg_split()
  20. $str = preg_split('/a/', 'cbabc');
  21. print_r($str);

以上就是PHP正则表达式之量词、元字符、修饰符的详细内容,更多关于PHP正则表达式之量词、元字符、修饰符的资料请关注九品源码其它相关文章!