php随记3

<?php

	#正则表达式
	#就是一种描述字符串结构的语法规则
	#是一个特定的格式化模式

    #1. 行定位符
    /*
	1) ^行首
	2)$行尾
		tm eqaul Tomorrow Moon
		^tm 匹配
		tm$不匹配
		tm屁匹配任意位置
    */

	#2. 单词界定符
	/*
	1)b \btm\b表示要查找一个完整的单词
	2)B \Btm|b正好相反 表示查找的不是一个完整的单词
	*/

	#3. 字符类
	/*
	1)正则表达式是区分大小写的如果要想忽略大小写可以使用[]
	  但是一个[]只能包含一个字符 例如tm的匹配要写成[tT][mM]
	2)POSIX预定义的字符类
		[:digit:]    [0-9]
		[[:alnum:]]  字母数字集合
		[[:alpha:]]  字母集合
		[[:blank:]]  空格 水平制表
		[[:xdigit:]] 十六进制数字
		[[:punct:]]  特殊字符 [email protected]#$%^&*?
		[[:print:]]  所有可打印字符(包括空白字符)
		[[:space:]]  空包字符 空格 换行 换页 回车 水平制表
		[[:graph:]]  所有可打印字符(不包括空白字符)
		[[:upper:]]  大写字母
		[[:lower:]]  小写字母
		[[:cntrl:]]  控制字符
	*/

	#4 选择字符 |
	/*
	可以理解为或的意思
	*/

	#5 连接字符 _
	/*
	[a,b,d...,z] ==> [a-z]
	*/

	# 排除字符 [^]
	# [^a-zA-Z] 除了字符以外的

	#6 限定符 (?*+{n,m})
	/*
	? 匹配前面的字符零次或者一次 colo?r可以匹配colour color
	+ 匹配前面的字符一次或多次   go+gle可以匹配google到go...ogle
	* 匹配前面的字符零次或多次   go*gle可以匹配ggle到go...ogle
	{n} 匹配前面的字符n次
	{n,} 匹配前面的字符至少n次
	{n,m} 匹配前面的字符至少n次 至多m次

	*/

    #7 点号字符
	/*
	能够表示出了换行符以外的任意一个字符
	比如匹配首字母是S尾字母是T的三个字母的单词
	^s.t$
	*/

	#8 转义字符
	/*
	同c java中的一致
	*/

	#9 反斜线(\)
	/*
	反斜线定义了一些不可显示 比如 \b 退格键 \n换行等等
	*/

	#10 小括号
	/*
	改变限定符的作用域
	*/

	#11 反向引用
	/*
	反向引用就是一考表达式的记忆功能匹配连续出现的字符串或字母
	如匹配连续两个it 首先将单词it作为分组 然后在后面加上"\1"即可 格式为:
	(it)\1 //其中这个1代表的分组的序号 因为可能有多个分组
	*/

	#12 模式修饰符
	/*
	i 忽略大小写
	m 多文本形式 字串中含有多个换行符 影响^$的匹配
	s 单文本形式 .可以匹配$^
	x 忽略空白字符
      修饰符有三种格式:(?i)tm(?-i),(?i:tm),/tm/i
	*/

    #php中POSIX扩展正则表达式函数
    /*
	bool erge/eregi(string pattern, string string[, array regs])
	在string中查找pattern,如果存在第三个参数,则会将匹配的字串划分
	存到数组中去 第一个区分大小写 第二个不区分
    */

	/*
	bool ereg_replace/eregi_replace(string pattern, string replacement, string string)
	在字符串string中匹配pattern,如果成果使用replacement替换 并且返回替换后的string
	第一个区分大小写 第二种不
	*/

	/*
	array split/split(string pattern, string string[, int limit])
	使用pattern分割字符串string 存在参数limit的话就是限制分割的个数
	*/

	#PCER兼容正则表达式函数
	/*
	array preg_grep(string pattern, array input)函数
	使用input一一匹配表达式pattern 最后返回所有
	由所有匹配成功的元素组成的数组
	*/
    $input = array('helloJimbo','nihaoaJinbo');
    $pattern = '/J...o/';
    $arr = preg_grep($pattern, $input);
    //echo sizeof($arr);
    for($i = 0; $i < sizeof($arr); $i++){
    	echo "$arr[$i]<br>";
    }

    /*
    int preg_match/preg_match_all(string pattern, string subject[, array matches])
    在字符串subject中匹配表达式pattern
    函数返回匹配次数,如果有matches,
    */

    /*
    string preg_quote(string str[, string delimiter])
    将str里面的所有特殊字符自动转义
    如果有delimiter参数 则delimiter里面的字符也被转义
    */

    /*
    preg_replace(mixed pattern, mixed replacement, mixed subject[, int limit])
    在subject中匹配pattern,匹配到替换成replacement,有limit限制次数
    preg_replace_callback(mixed pattern, callback callback, mixed subject[, int limit])
    功能相同 只不过replacement换成回调函数 可以更灵活

    */

    /*
	array preg_split(string pattern, string subject[, int limit])
	分割字符串
    */

?>

时间: 2024-08-02 15:21:48

php随记3的相关文章

微信运动记步原理,及刷步数方法大揭密

随着"微信运动"功能的开启,朋友圈里燃起了每天刷步的热情,每天为了争夺运动封面第一名,不惜下班还在楼下多绕一圈儿再回家.那么你们都知道微信运动是如何记录我们每日行程步数的吗?这个数据到底准不准确呢?今天小编就为大家来一个大揭密. 原理: 手机内置了振动传感器或协助处理器,根据这些设备的震动频率来储存数据.简单地说,就是人在步行时重心都有一点上下移动,传感器和协作器感应到这种重心移动并进行记数. 设备: iPhone 5S/6/6 Plus三款苹果手机因为自带M7/M8协处理器,无需任何

.NET Core爬坑记 1.0 项目文件

前言: 之所以要写这个系列是因为在移植项目到ASP.NET Core平台的过程中,遇到了一些“新变化”,这些变化有编译方面的.有API方面的,今天要讲的是编译方面的一些问题.我把它们整理后分享出来,以便各位博友不要再遇到这些坑. 在Dotnet Core RC2版本中,project.json 管理着整个项目,包括编译文件.依赖包管理.版本信息.平台依赖与发布等功能. 关于项目中引用: 比如我们一般看到Project.json中一般会有如下内容: "dependencies": { &

最美的时光在路上 - 记第一次深马

昨天跑了深圳马拉松的半马,这是我的第二马,家门口跑马还是有些兴奋的,就因为这个兴奋劲儿,凌晨两点才入睡,朦朦胧胧睡了三个小时,5点半就不得不爬起来洗洗涮涮了,吃了准备好的早餐,坐第一班地铁奔赴市民中心,到达市民中心,已经是人山人海了,各方跑友汇聚于此.话说,这两年跑步是越来越火,我是觉得和现在各种跑步APP的兴起有关,有了这些记步APP,跑了步晒下,朋友们点点赞,这些正向反馈让你跑步的心气就有更足了,其他运动可能很难通过什么APP有这样的体验. 时间紧,存了包,就赶紧往起点一点点的挤(人多,真的

基于Android的计步器(Pedometer)的讲解(四)——后台记步

今天先不说Pedometer(计步器)项目UI方面的了,今天讲一个基于重力加速度的记步功能传感器(Sensor),然后 在后台开启记步. 计步器(Pedometer)整个项目的源代码,感兴趣的朋友可以下载来看看(记得帮小弟在github打个星~) https://github.com/296777513/pedometer 先上几张效果图:(效果和上一篇讲到的CircleBar非常的相似,因为记步功能在后台) 如图所示,能根据你的一些基本参数,来记步.有一个缺点,因为这个是根据感应加速度来计算是

记一次varnish异常/故障

公司一varnish集群运行很久了,一直很稳定,没发现什么问题.最近开发那边反馈新传的静态文件访问不了.出现以下错误: Error 503 Service Unavailable Guru Meditation: XID: 1267841165 cache server 5443 检查varnish启动配置, ps -ef | grep varnish usr/sbin/varnishd -P /var/run/varnish.pid -a :80 -f /etc/varnish/default

ACM退役记&amp;&amp;回忆录

ACM退役记 2017.9.19星期二,"九一八事变"八十六年后的第二天,永远记住这个日子,刚好是我报名ACM到现在,刚好满一年,而今天正是我注册杭州电子科技大学OJ的时间(就是这一天报名的),附上小图一张! 嗯,我退役了,真的退役了,从此告别了ACM的生涯,虽然有很多遗憾,虽然有很多不舍,虽然有很多很多不情愿,但是,,,还是没能阻止这一天的到来,可能你们会认为我退役的有点早,可能你们也会有很多疑惑,为啥这么优秀这么强的大佬竟然退役的这么早...(自嘲一下,其实菜的一逼) 其实这个原因

踩坑记(1)——使用slf4j+logback记录日志

jar包版本: <spring.version>3.1.0.RELEASE</spring.version> <slf4j.version>1.7.25</slf4j.version> <logback.version>1.2.3</logback.version> <logback.ext.version>0.1.1</logback.ext.version> commons-logging:scope为pr

记一次django的诡异报错 Could not parse the remainder: &#39;=&#39; from &#39;=&#39;

如题,一个展示日志的功能,调用该模板文件时报错,Could not parse the remainder: '=' from '='.这行模板语言在上面出现过同样的,仅仅是改了'<='右端的整数大小,而且该有的标签也不少. 百般思考无解,stackoverflow和百度都没答案.后来重新看了下开发文档,发现是Django的版本不对,开发时用的1.8.2,我部署时用的1.11.5.重新安装低版本的django后问题解决.但原因仍待查. 记一次django的诡异报错 Could not parse

Linux随记

1. 设置 极点五笔 自动上屏 默认情况下,ibus-table不开启直接上屏模式(即敲完四个码,没有重码时,直接显示到屏幕上),在五笔输入法下 Ctrl + / 即可. Linux随记,码迷,mamicode.com

好记心不如烂笔头,ssh登录 The authenticity of host 192.168.0.xxx can&#39;t be established. 的问题

The authenticity of host 'git.coding.net (123.59.85.184)' can't be established.RSA key fingerprint is SHA256:jok3FH7q5LJ6qvE7iPNehBgXRw51ErE77S0Dn+Vg/Ik.Are you sure you want to continue connecting (yes/no)? 用ssh登录一个机器(换过ip地址),提示输入yes后,屏幕不断出现y,只有按ctr