php中常用的正则表达式函数
- php中常用的正则表达式函数
- * preg_match()
- * preg_match_all()
- * preg_replace()
- * preg_filter()
- * preg_grep()
- * preg_split()
- * preg_quote()
- 接下来对比讲解:
- 讲解中 $pattern 通常表示正则表达式
$subject 通常表示目标处理数据- 定义一个方法 方便查看数据类型:
- function show($val = null){
- if(empty($val)){
- //打印空
- echo 'null';
- }elseif(is_array($val) || is_object($val)){
- //打印数组或者对象
- echo '<pre>';
- print_r($val);
- echo '</pre>';
- }else{
- //打印string int float
- echo $val;
- }
- }
- preg_match()与preg_match_all()
- /*方法简单说明*/
- preg_match($pattern,$subject,[array &$matches]) //匹配一次 第三个参数可选 匹配结果放置matches数组
- preg_match_all($pattern,$subject,array &matches) //匹配多次 三参必选 匹配结果放置matches数组
- $pattern = '/[0-9]/';
- $subject='b5fg4sgf3sd2f1g';
- $m1 =preg_match($pattern,$subject,$arr1);
- show($m1);
- show($arr1);
- /*
- 1
- Array
- (
- [0] => 5
- )
- */
- $m2 =preg_match_all($pattern,$subject,$arr2);
- show($m2);
- show($arr2);
- /*
- 5
- Array
- (
- [0] => Array
- (
- [0] => 5
- [1] => 4
- [2] => 3
- [3] => 2
- [4] => 1
- )
- )
- */
- 2.preg_replace()与preg_filter()
- /*方法简单说明*/
- * preg_replace与preg_filter
- * preg_replace($pattern,$replacement,$subject)
- * //正则替换函数被替换对象是数组 返回全部
- //正则替换函数 被替换对象是数组 仅返回被替换元素
- * 联想:str_repalce()
- * echo str_replace("world","Shanghai","Hello world!");
- * //得到Hello Shanghai!
- //第一测 字符串中替换字符串 结论:此处preg_replace()与preg_filter()无区别
- $pattern = '/[0-9]/';
- $subject='b65fg4sgf3sd2f1g';
- $replacement = '_';
- $str1 = preg_replace($pattern,$replacement,$subject);
- $str2 = preg_filter($pattern,$replacement,$subject);
- echo '<hr>';
- show($str1);
- echo '<br>';
- show($str2);
- /*
- b__fg_sgf_sd_f_g
- b__fg_sgf_sd_f_g
- */
- //第二测 字符串中根据数组正则 替换 结论:此处preg_replace()与preg_filter()无区别
- $pattern = array('/[123]/','/[456]/','/[789]/');
- $subject='b123fg3456sgf3789f1g';
- $replacement = array('天','地','人');
- $str3 = preg_replace($pattern,$replacement,$subject);
- $str4 = preg_filter($pattern,$replacement,$subject);
- echo '<hr>';
- show($str3);
- echo '<br>';
- show($str4);
- /*
- b天天天fg天地地地sgf天人人人f天g
- b天天天fg天地地地sgf天人人人f天g
- */
- //第三测 数组中根据数组正则 替换 结论:此处展示preg_repalce()与preg_filter()有区别
- $pattern = array('/[123]/','/[456]/','/[789]/');
- $subject=array('b','fg3','456','sgf','789','fg');
- $replacement = array('天','地','人');
- $str5 = preg_replace($pattern,$replacement,$subject);
- $str6 = preg_filter($pattern,$replacement,$subject);
- echo '<hr>';
- show($str5);
- echo '<br>';
- show($str6);
- /*
- Array
- (
- [0] => b
- [1] => fg天
- [2] => 地地地
- [3] => sgf
- [4] => 人人人
- [5] => fg
- )
- Array
- (
- [1] => fg天
- [2] => 地地地
- [4] => 人人人
- )
- */
- 3 . preg_grep($pattern, array $subject) //此处$subject只可以为一维数组
- /*函数说明*/
- preg_grep($pattern,array $input)//只可以匹配一维数组 返回匹配成功的数组元素
- 可以理解preg_grep()为阉割版 preg_filter()
- 只做了匹配 不作替换
- $pattern = '/[0-9]/';
- $subject=array('b','fg3','456','sgf','789','fg');
- $arr = preg_grep($pattern,$subject);
- show($arr);
- /*
- Array
- (
- [1] => fg3
- [2] => 456
- [4] => 789
- )
- */
- 4 . preg_split($pattern,$subject)//一匹配成功为切割点切割字符串成数组
- 可以理解preg_split()升级版的explode()
- $pattern = '/[0-9]/';
- $subject='bfg3456sgf789fg';
- $arr = preg_split($pattern,$subject);
- show($arr);
- /*
- Array
- (
- [0] => bfg
- [1] =>
- [2] =>
- [3] =>
- [4] => sgf
- [5] =>
- [6] =>
- [7] => fg
- )
- */
- 5 . preg_quote($str) 正则运算符转译
- /*
- * preg_quote($str) 正则运算符转译
- * . \ + * ? [ ^ ] $ () {} = ! < > | : -
- *
- */
- echo '<hr>';
- $str = "qewr{asdf}[123]";
- $str =preg_quote($str);
- print_r($str);
- /*
- qewr\{asdf\}\[123\]
- */
- 简单总结通性:
- preg_ 开头
- 除preg_quote函数以外,第一个参数都是正则表达式
- preg_match 表单验证等
- preg_replace 非法词语过滤等
php中常用的正则表达式函数的更多相关文章
- Python常用模块中常用内置函数的具体介绍
Python作为计算机语言中常用的语言,它具有十分强大的功能,但是你知道Python常用模块I的内置模块中常用内置函数都包括哪些具体的函数吗?以下的文章就是对Python常用模块I的内置模块的常用内置 ...
- iOS开发中常用的数学函数
iOS开发中常用的数学函数 /*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(,)); //result 9 NSLog(,)); //result 27 //开平方 ...
- 实际项目开发过程中常用C语言函数的9大用法
C语言是当中最广泛的计算机编程语言,是所有计算机编程语言的祖先,其他计算机编程语言包括当前流行的Java语言,都是用C语言实现的,C语言是编程效率最高的计算机语言,既能完成上层应用开发,也能完成底层硬 ...
- Sql 中常用时间处理函数
1.Sql 中常用时间处理函数 GETDATE() 返回当前的日期和时间 DATEPART() 返回日期/时间的单独部分 DATEADD() 返回日期中添加或减去指定的时间间隔 DATEDI ...
- PHP中常用的正则表达式由哪些元素构成?
在程序开发中,我们常常要用到正则表达式,对于新手来说,很多时候知道正则表达式是怎么回事,但当真正需要使用的时候,却不知该用什么函数,具体的修饰符也比较混乱.下面小编就为大家整理了一些php正则表达式中 ...
- JavaScript 中常用的 正则表达式
这编文章我来整理了一些在 javascript 中常用的正则式希望能给大家带来一些开发的灵感 //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{ ...
- 收集JavaScript中常用的方法函数
本文中,收集了一些比较常用的Javascript函数,希望对学习JS的朋友们有所帮助. 1. 字符串长度截取 function cutstr(str, len) { var temp, icount ...
- js中常用的正则表达式
我一般对正则的使用方式如下,该方法会返回一个boolean值,然后对这个返回值来进行判断 // 判断是否是整数 function isInt(num) { var reg = new RegExp(& ...
- 【Oracle】Oracle中常用的系统函数
Oracle SQL 提供了用于执行特定操作的专用函数.这些函数大大增强了 SQL 语言的功能.函数可以接受零个或者多个输入参数,并返回一个输出结果.在Oracle还可以自定义函数,关于更多信息可以查 ...
随机推荐
- js(=>) 箭头函数 详细解说 案例大全
ES6标准新增了一种新的函数:Arrow Function(箭头函数). 为什么叫Arrow Function?因为它的定义用的就是一个箭头: x => x * x 上面的箭头函数相当于: fu ...
- Ansible拷贝文件遇到的问题
ansible报错Aborting, target uses selinux but python bindings (libselinux-python) aren't installed 报错内容 ...
- SpringRMI远程方法调用【原】
Spring为各种远程访问技术的集成提供了工具类. 该小段引用自 http://www.open-open.com/lib/view/open1408957290478.html Spring远程支持 ...
- VS Code调试Golang提示Failed to continue:Check the debug console for details.
解决方法: 打开调试面板 VSCode->查看->调试 添加调试目标 在"没有调试"的下拉框中点击"添加配置.."添加目标调试配置 在" ...
- HDU - 4324 Triangle LOVE(拓扑排序)
https://vjudge.net/problem/HDU-4324 题意 每组数据一个n表示n个人,接下n*n的矩阵表示这些人之间的关系,输入一定满足若A不喜欢B则B一定喜欢A,且不会出现A和B相 ...
- Ubuntu 16.04下安装zsh和oh-my-zsh
注意:安装前先备份/etc/passwd 一开始装oh-my-zsh我是拒绝的,因为这东西安装容易,卸载难,真的很难. Mac安装参考:http://www.cnblogs.com/EasonJim/ ...
- awk词频统计功能
[root@test88 ~]# vim word_freq.sh #!/bin/bash if [ $# -ne 1 ];then echo "Usage: $0 filename&quo ...
- Python发邮件的小脚本
# -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText mailto_list = ['hitwh_Gy ...
- js中获取时间new date()的用法和获取时间戳
获取时间: 1 var myDate = new Date();//获取系统当前时间 获取特定格式的时间: 1 myDate.getYear(); //获取当前年份(2位) 2 myDate.getF ...
- ROS 错误之 [rospack] Error: package 'beginner_tutorials' not found
ubuntu 下面情况处理 $ cd $gedit .bashrc 再后面加入两行 source /opt/ros/indigo/setup.bash source /home/lv/catkin_w ...