`

第9章 正则表达式

 
阅读更多

Demo1.php

<?php
	//尝试着写第一个正则表达式
	//第一个参数,表示模式(就是和字符串去比较,匹配)
	//第二个参数,表示字符串
	//如果整个函数模式和字符串比较后匹配了,那么返回真(true)1,否则返回假(false)0
	//什么叫匹配,就是一个一个的比较过去
	//按照什么规则??按照模式来匹配
	//只要模式全部通过,那么就通过
	//匹配和相等是两个概念
	//因为目前的模式是一个整体,php
	//所以,字符串只要有连在一起的 php 三个字符,不管怎样的字符串都能匹配
	$mode = '/php/';	//规则模式
	$string = 'fsdfsdfsdphpfsdfs';	//字符串
	//echo preg_match($mode,$string);
	if( preg_match($mode,$string)){
		echo '匹配';
	}else{
		echo '不匹配';
	}

	//echo preg_match('/php/','php');
//	if('a'=='a'){
//		echo '相等';
//	}else {
//		echo '不相等';
//	}
?>

 

Demo2.php

<?php
	//什么叫前导,前面的一个字符
	//+ 号的前导字符就是 h
	//h+ 的意思是,至少包含一个 h
	//+ 号的意思
	//$mode = '/ph+p/';	//规则模式
	//h* 的意思是,零个或者多个 h
	//* 号虽然可以是零个,但是前导字符不能更改,更改了,就不匹配了
	//$mode = '/ph*p/';	//规则模式
	//h? 的意思是,零个或者一个 h
	//? 多个前导字符不行
	//$mode = '/ph?p/';	//规则模式
	//.的意思是,任意一个字符,所以,两个点,就是任意两个字符
	//$mode = '/p.p/';	//规则模式
	//.* 表示前导任意字符,并且零个或者多个
	//$mode = '/p.*p/';	//规则模式
	//h{3} 表示,前导必须是3 个,
	//$mode = '/ph{3}p/';	//规则模式
	//h{3,5}表示,前导必须是 3 到 5 个
	//$mode = '/ph{3,5}p/';	//规则模式
	//h{3,} 表示,前导至少 3 个 h
	//$mode = '/ph{3,}p/';	//规则模式
	//$符号,一般加在模式的字符串尾巴上
	//表示从尾巴开始匹配
	//$mode = '/php$/';	//规则模式
	//^表示,从开头进行匹配
	//$mode = '/^php/';	//规则模式	
	//^ 和 $ 一起用的,基本上不要用正则了,直接用 == 号即可
	//$mode = '/^php$/';	//规则模式	
	//| 是一个条件选择符,如果有其中一个,即可匹配。
	//$mode = '/php|asp/';	//规则模式
	//()	
	$mode = '/(this) (is) (php|asp)/';	//规则模式		
	$string = 'this is php';	//字符串
	//echo preg_match($mode,$string);
	if( preg_match($mode,$string)){
		echo '匹配';
	}else{
		echo '不匹配';
	}
?>

 

Demo3.php

<?php
	//元子符
	//[]中括号,是一种正则里的语法
	//里面的东西表示任意一个即可
	//[a-z] 表示 26 个字母中,随便其中一个
	//$mode = '/[a-z]/';	//规则模式	
	//[0-9] 表示 0-9,随便其中一个	
	//$mode = '/[0-9]/';	//规则模式
	//[asv] 其中一个
	//$mode = '/[asv]/';	//规则模式
	//[a-zA-Z0-9_]  表示其中一个匹配 [a-zA-Z0-9_] 中的任意一个
	//$mode = '/[a-zA-Z0-9_]/';	//规则模式	
	//不是在开头匹配行首的^,而是中括号里的 ^
	//[^] 表示匹配除了abc 外都能匹配的字符串			
	//$mode = '/[^abc]/';	//规则模式		
	//为了让人们使用更加的方便,\w 代表 [a-zA-Z0-9_] 
	//$mode = '/[\w]/';	//规则模式	
	//\W 正好和 \w相反
	//$mode = '/[\W]/';	//规则模式	
	//\d 和 [0-9] 一样	
	//$mode = '/\d/';	//规则模式	
	//\D 和 [^0-9] 一样	
	//$mode = '/\D/';	//规则模式	
	//\s匹配任何空白字符
	//$mode = '/\s/';	//规则模式
	//\S不包含空白字符	
	//$mode = '/\S/';	//规则模式
	//\b表示到达了单词的边界,如果没有到达就不匹配,边界可以理解为空格	
	//$mode = '/php\b/';	//规则模式	
	//\B 表示没有到达边界
	//$mode = '/php\B/';	//规则模式
	//因为 + 号是正则里的特殊字符
	//如果要匹配特殊字符的话,必须加上 \
	$mode = '/p\+p/';	//规则模式		
	$string = 'p+p';	//字符串
	if( preg_match($mode,$string)){
		echo '匹配';
	}else{
		echo '不匹配';
	}	
?>

 

Demo4.php

<?php
	//修饰符
	//修饰符放在 // 的外面
	//i 表示不区分大小写
//	$mode = '/php/i';	//规则模式		
//	$string = 'PHP';	//字符串
	//m 表示匹配首尾的时候,如果遇到换行,也应该承认是结尾
//	$mode = '/php$/m';	//规则模式		
//	$string = "this is a php\n ,is goods";	//字符串
	//x 表示忽略掉规则模式中的空白字符
//	$mode = '/php/x';	//规则模式		
//	$string = 'ph p';	//字符串
	//A 表示必须从头开始匹配
	$mode = '/php/A';	//规则模式		
	$string = 'phpfsdfd';	//字符串
	if( preg_match($mode,$string)){
		echo '匹配';
	}else{
		echo '不匹配';
	}		
?>

 

Demo5.php

<?php
	//搜索数组中的相匹配的字符串
	//preg_grep()	函数
	$language = array('php','asp','jsp','python','ruby');
	//找出最流行的 3p 语言
	//这三门语言的匹配共同点是什么,最后结尾都是 p
	//结尾匹配 p /p$/
	//$mode = '/p$/';
	//打印出开头为 p 的语言
	$mode = '/^p/';
	//python 蟒蛇语言,在国外有取代 PHP 的传闻
	print_r(preg_grep($mode,$language));
?>

 

Demo6.php

<?php
	//搜索模式,最后返回的是真或者是假,1,10
	echo preg_match('/php[1-6]/','php5');	
?>

 

Demo7.php

<?php
	//电子邮件的小案例
	//通过拆分的方法分组
	$mode = '/^([\w\.]{2,255})@([\w\-]{1,255}).([a-z]{2,4})$/';//模式不能缺少
	$string = 'oneStopWeb@163.com';	
	if(preg_match($mode,$string)){
		echo '电子邮件合法';
	}else{
		echo '电子邮件不合法';
	}
?>

 

Demo8.php

<?php
	//匹配全局正则
	//将字符串的所有匹配得到的结果放到一个数组变量里
	preg_match_all('/php[1-5]/','php5fsdfsdphp6fsdfsdfphp4',$out);
	print_r($out);//Array ( [0] => Array ( [0] => php5 [1] => php4 ) ) 
	echo $out[0][0];//php5
?>

 

Demo9.php

<?php
	//定界定则
	echo preg_quote('PHP is $150');	//PHP is \$150
?>

 

Demo10.php

<?php
	//搜索匹配的结果,然后替换掉
	//第一个参数,存的是正则模式
	//第二参数,放的是替换掉的字符串
	//第二个参数,字符
	//将第三个参数的字符串的 php5,php6 替换成了 oneStopWeb
	echo preg_replace('/php[1-6]/','oneStopWeb','This is a php5,This is a php6');	
	//This is a oneStopWeb,This is a oneStopWeb
?>

 

Demo11.php

<?php
	//贪婪和分组获取的案例,ubb
	//我要将这个 [b][/b] 换成 <strong></strong>
	//注意一个问题,这个时候的 [] 中括号,是字符串的括号,而不是语法[a-z]
	//. 表示匹配任意字符一个,加上一个 * 号表示匹配零个或者多个
	//用括号分为三组,那么第一组就是\1,第二组就是\2,第三组就是\3
	//目前只有1 组,\1
	//第一问题,第一个[b]和最后一个[/b]匹配了
	//解决贪婪匹配。
	$mode = '/(\[b\])(.*)(\[\/b\])/U';//U 禁止贪婪
	$replace = '<strong>\2</strong>';
	$string = 'This is a [b]php5[/b],This is a  [b]php6 [/b]';
	//echo $string;
	echo preg_replace($mode,$replace,$string);	
?>

 

Demo12.php

<?php
	//用正则表达来进行分割
	//如果没有 [] 符号,就表示,要同时满足
	print_r(preg_split('/[.@]/','oneStopWeb@163.com'));
	//Array ( [0] => oneStopWeb [1] => 163 [2] => com ) 	
?>

 

 

 

分享到:
评论

相关推荐

    清华大学精品Python学习PPT课件-第5章 Python正则表达式.pptx

    第五章“字符串与正则表达式”深入探讨了这一关键主题,旨在帮助初学者和有经验的开发者更好地理解和使用字符串及正则表达式。 **5.1 字符串基础** 1. **字符串表示**:Python中的字符串可以由单引号或双引号包围...

    第 9 章 正则表达式

    在《第 9 章 正则表达式》中,我们可能学习到以下关键概念: 1. **基础字符集**: - 字符类:如`\d`代表数字(等同于`[0-9]`),`\w`代表字母或数字(等同于`[a-zA-Z0-9_]`),`\s`代表空白字符。 - 特殊字符:如...

    精通正则表达式(第三版)中文

    - **第9章:跨平台兼容性** 分析了不同平台下正则表达式的差异,并给出了相应的解决方案。 #### 第四部分:参考篇 - **第10章:正则表达式引擎解析** 深入剖析了正则表达式引擎的工作原理。 - **第11章:常见...

    精通正则表达式

    - **第9章至第12章**:通过具体的项目实例,教授读者如何在实际工作中运用正则表达式解决问题,包括日志文件分析、Web表单验证等多个方面。 #### 附录部分 - **附录A:参考手册**:提供了各种正则表达式引擎的详细...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    第9章(/09/) RegexApplication/Default.aspx 正则表达式类的应用 RegexApplication/GetPageHtmlData.aspx 获取网页的内容 第10章(/10/) ASPNETValidator/Compare.aspx 比较验证 ...

    精通正则表达式~~~

    第9章:.NET. 405 .NET的正则流派... 406 对于流派的补充... 409 使用.NET正则表达式... 413 正则表达式快速入门... 413 包概览... 415 核心对象概览... 416 核心对象详解... 418 创建Regex对象... 419 ...

    第5章 正则表达式.pptx

    本章主要围绕字符串基础和正则表达式展开。 **字符串基础** 1. **字符串表示方式**:字符串可以用单引号(' ')、双引号(" ")或三引号(''' ''', """ """)进行定义。三引号允许字符串跨越多行,并且能包含换行符。 2...

    正则表达式必知必会pdf

    使用子表达式7.1 什么是子表达式7.2 子表达式7.3 子表达式的嵌套7.4 小结第8章 回溯引用:前后一致匹配8.1 回溯引用有什么用8.2 回溯引用匹配8.3 回溯引用在替换操作中的应用8.4 小结第9章 前后查找9.1 前后查找9.2 ...

    ruby基础教程(第四版)第16章 正则表达式1

    ### Ruby基础教程(第四版)第16章 正则表达式1 #### 知识点概述 在《Ruby基础教程(第四版)》的第16章中,作者bluetea详细介绍了Ruby语言中正则表达式的使用方法。本章节主要围绕正则表达式的创建、基本匹配规则...

    第4章 数据处理-php正则表达式-郑阿奇(续)

    正则表达式是一种文本处理的重要工具,它允许用户通过定义一套规则来搜索或匹配特定的字符串模式。PHP作为一门广泛使用的脚本语言,内置了强大的正则表达式功能,能够帮助开发者更有效地处理数据和执行文本操作。 ...

    简单入门正则表达式(侧重原理,附属实例)

    第九章 “四项处理”——断言的用法: 断言包括前瞻断言和后瞻断言,如`(?=pattern)`(前瞻)和`(?!pattern)`(否定前瞻),以及`(?)`(后瞻)和`(?&lt;!pattern)`(否定后瞻)。这些断言用于确保匹配的位置满足特定...

    正则表达式速查表.pdf

    - 示例:匹配 “第([0-9]+)章(.*) 替换:\2第\1节 可以用来匹配章节号和名称,并将章节名称放置在章节号之后。 #### 三、总结 正则表达式是文本处理的重要工具之一,通过组合不同的元素,可以构建出非常复杂的...

    正则表达式[1].rar

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。在编程语言中,如JavaScript,正则表达式是...通过阅读《第10章 正则表达式》的PDF文档和相关的教程资源,可以进一步深入理解和实践这些概念。

    精品课件 Python从入门到精通 第8章 Python中使用正则表达式(共16页).ppt

    Python中的正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它能通过预定义的模式匹配和处理字符串。在Python中,我们通常使用`re`模块来实现正则表达式的功能。 正则表达式的语法是其核心...

    031115_【第11章:Java常用类库】_正则表达式.rar

    在Java编程语言中,正则表达式是一种强大的文本处理工具,用于模式匹配和字符串操作。在Java中,正则表达式主要通过`java.util.regex`包来实现,这个包提供了许多类,如`Pattern`, `Matcher`和`...

    正则表达式和字符串处理.doc

    #### 第一章 正则表达式概述 正则表达式(Regular Expression)是一种强大的文本处理工具,其起源可追溯到对人类神经系统的研究。正则表达式的主要功能包括但不限于: - **模式匹配**:通过特定的模式来匹配一类...

    非常好的学习正则表达式教程 不过不太全 谅解!

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。在这个“非常好的学习正则表达式教程”中,尽管内容可能不够全面,但仍然能为初学者...

Global site tag (gtag.js) - Google Analytics