regular expression (php函数)
1. 正则表达式是一种字符串搜索和匹配的工具
2. php中常用正则表达式函数
- preg_match($pattern, $subject)
- preg_match_all($pattern, $subject, array &$matches)
- preg_replace($pattern, $replacement, $subject)
- preg_filter($pattern, $replacement, $subject)
- preg_grep($pattern, array $input)
- preg_split($pattern, $subject)
- preg_quote($str)
3. php函数说明
$pattern = 正则表达式
$subject = 匹配的目标函数
(1) preg_match() 和 preg_match_all() : return 匹配到结果的次数
- preg_match($pattern, $subject, [array &$matches]) : 只匹配一次, 结果为0或者1, 第三个参数可不写, 第三个参数表示地址的引用
- preg_match($pattern, $subject, array &$matches) : 匹配全部, 结果为0,1,2......
eg:
$pattern='/[0-9]/';
$subject = 'weuyr3ui76as83s0ck9';
$m1 = $m2 = array();
t1 = grep_match($pattern, $subject, $m1);
t2 = grep_match_all($pattern, $subject, $m2);
结果: m1 = array([0]=>3)
m2 = array([0]=>array([0]=>3,[1]=>7,[2]=>6,[3]=>8,[4]=>3,[5]=>0,[6]=>9))
t1 = 1
t2 = 7
(2) preg_replace 与 preg_filter : 支持数组替换
- preg_replace($pattern, $replacement, $subject) : 保留发生替换和没发生替换的值
- preg_filter($pattern, $replacement, $subject) : 保留发生替换的值
eg one:
$pattern='/[0-9]/';
$subject = 'weuyr3ui76as83s0ck9';
$replacement = '盈';
$str1 = preg_replace($pattern, $replacement, $subject);
$str2 = preg_filter($pattern, $replacement, $subject);
结果:
$str1 = 'weuyr盈ui盈盈as盈盈s盈ck盈'
$str2 = 'weuyr盈ui盈盈as盈盈s盈ck盈'
eg two:
$pattern = array('/[0123]/', '/[456]/', '/[789]/')
$replacement = array('啊', '啦', '嗦')
结果:
$str1 = 'weuyr啊ui嗦啦as嗦啊s啊ck嗦'
$str2 = 'weuyr啊ui嗦啦as嗦啊s啊ck嗦'
eg three:
$subject = array('weuy', 'r3ui', '76as83', 's', '0ck9');
结果:
$str1 = array([0]=>weuy, [1]=>r啊ui, [2]=>嗦啦as嗦啊, [3]=>s, [4]=>啊ck嗦)
$str2 = array([1]=>r啊ui, [2]=>嗦啦as嗦啊, [4]=>啊ck嗦)
(3) grep_grep($pattern, array $input) : 阉割版的grep_filter(), 只做匹配, 不做替换
eg:
$pattern='/[0-9]/';
$subject = array('weuy', 'r3ui', '76as83', 's', '0ck9');
$arr = preg_grep($pattern, $subject);
结果:
$arr = array([1]=>r3ui, [2]=>76as83, [4]=>0ck9)
(4) grep_split($pattern, $subject) : explode是该函数的子集
eg:
$pattern = '/[0-9]/';
$subject = '你2好3啊!'
$arr = preg_split($pattern, $subject);
结果:
$arr = ([0]=>你, [1]=>好, [2]=>啊!)
(5) grep_quote($str) : 正则运算符转义
eg:
$str = 'asgs{kkk}[123]'
$str = grep_quote($str)
结果:
asgs\{kkk\}\[123\]
regular expression (php函数)的更多相关文章
- Python正则表达式Regular Expression基本用法
资料来源:http://blog.csdn.net/whycadi/article/details/2011046 直接从网上资料转载过来,作为自己的参考.这个写的很清楚.先拿来看看. 1.正则表 ...
- lc面试准备:Regular Expression Matching
1 题目 Implement regular expression matching with support for '.' and '*'. '.' Matches any single char ...
- Regular Expression Syntax
python的正则表达式 正则表达式的概念 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规 ...
- 【一天一道LeetCode】#10. Regular Expression Matching
一天一道LeetCode系列 (一)题目 Implement regular expression matching with support for '.' and '*'. '.' Matches ...
- python(4): regular expression正则表达式/re库/爬虫基础
python 获取网络数据也很方便 抓取 requests 第三方库适合做中小型网络爬虫的开发, 大型的爬虫需要用到 scrapy 框架 解析 BeautifulSoup 库, re 模块 (一) r ...
- Python 模块 re (Regular Expression)
使用 Python 模块 re 实现解析小工具 概要 在开发过程中发现,Python 模块 re(Regular Expression)是一个很有价值并且非常强大的文本解析工具,因而想要分享一下此 ...
- Leetcode Week1 Regular Expression Matching
Question Given an input string (s) and a pattern (p), implement regular expression matching with sup ...
- [LeetCode] Regular Expression Matching 正则表达式匹配
Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...
- myeclipse中导入js报如下错误Syntax error on token "Invalid Regular Expression Options", no accurate correc
今天在使用bootstrap的时候引入的js文件出现错误Syntax error on token "Invalid Regular Expression Options", no ...
随机推荐
- Table Lookup
做OJ的时候,做过类似的,即hash.算法很简单,关键是书上写的和做OJ,是完全不同的风格.有很多值得学习的地方. /* * Table Lookup * 详见<<C程序设计语言>& ...
- Migration workstation vms to openstack kvm
Migration workstation vms to openstack kvm 分别分成(磁盘是否拆分,vms 是否 有多个磁盘驱动器) 1, linux迁移 vmware workstatio ...
- JDK 高性能编程之容器
高性能编程在对不同场景下对于容器的选择有着非常苛刻的条件,这里记录下前人总结的经验,并对源码进行调试 JDK高性能编程之容器 读书笔记内容部分来源书籍深入理解JVM.互联网等 先放一个类图util,点 ...
- 关于storm群集容错概念的简单介绍
1.当一个worker死掉会发生什么? 当一个worker死掉,那么supervisor会重新启动这个worker.如果它总是启动失败将不能发送心跳到nimbus,那么nimbus将把这 ...
- J2EE开发中常用的缓存策略
一.什么是缓存1.Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问2.凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之 ...
- Oracle Quality --- Setup Collection Element and Collection Plan
Responsibility: Quality, Vision Enterprises 第一步: 创建 Collection Elements setup > collection elemen ...
- Ellipse常用快捷键
Ctrl+m:视窗大小变化 Ctrl+F6:在打开的文件件进行切换 Ctrl+F7:在资源窗口间切换Ctrl+F8:在各种模式下进行切换 Ctrl+e:选择某个打开的文件Shift+home:整行选取 ...
- Android NumberPicker默认外观的修改
NumberPicker是Android3.0之后引入的一个控件,在以后的TimePicker和DatePicker时间控件里边都有引用,NumberPicker本身并没有提供接口给开发者修改其默认外 ...
- 关于PHP的curl开启问题 (转)
今天在做一个新浪登录功能,新浪提供的PHP SDK里需要用到curl_init()函数,在调试的时候报找不到curl_init()的方法. 经搜索得知需要开启curl的php扩展,那curl又是什么呢 ...
- shell 中条件判断
if 中的 -z 到 -d 的意思 2011-09-05 10:30 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ ...