PHP正则表达式元字符与常用函数

**
正则表达式常用元字符
**
	1、/			定界符
	2、^			匹配字符串的开始
	3、$			匹配字符串的结束
	4、.			匹配除换行符意外的任意字符
	5、?			零或一个(表示 0-1个)
	6、*    		零或多个(表示任意个数 0-n个)
	7、+    		一或多个(表示一个以上)
	8、\w            匹配字母或数字或下划线
	9、\s            匹配任意的空白符,所谓空白字符是指:空格、制表符、换页符等
	10、\d           匹配数字
	11、\b           匹配单词的开始或结束
	12、\W           \w的反义,即匹配任意非字母,数字,下划线和汉字的字符
	13、\S           \s的反义,即匹配任意非空白符的字符
	14、\D           \d的反义,即匹配任意非数字的字符
	15、\B           \b的反义,即不是单词开头或结束的位置
	16、[a]          匹配a字符,如,[a-z] 所有小写字母,[A-Z] 所有大写字母,[0-9] 所有数字
	17、[^a]         匹配除了 a 之外的任意字符,如 [^abc] 匹配除了 abc 这几个字母之外的任意字符
	18、{3}          3个紧接前的字符
	19、{5,15}       5-15个紧接前的字符
	20、(hello|world) hello 或 world

注意:如需匹配本身,必须在其前面加一个转义字符 \,如下字符
( ) [ ] . * ? + ^ | $ \ /


**
PHP正则表达式修饰符的种类及介绍:
**
	1、i 如果在修饰符中加上"i",则正则将会取消大小写敏感性,即"a"和"A" 是一样的。
	2、m 默认的正则开始"^"和结束"$"只是对于正则字符串如果在修饰符中加上"m",那么开始和结束将会指字符串的每一行:每一行的开头就是"^",结尾就是"$"。
	3、s 如果在修饰符中加入"s",那么默认的"."代表除了换行符以外的任何字符将会变成任意字符,也就是包括换行符!
	4、x 如果加上该修饰符,表达式中的空白字符将会被忽略,除非它已经被转义。
	5、e 本修饰符仅仅对于replacement有用,代表在replacement中作为PHP代码。
	6、A 如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分。比如说"/a/A"匹配"abcd"。
	7、E 与"m"相反,如果使用这个修饰符,那么"$"将匹配绝对字符串的结尾,而不是换行符前面,默认就打开了这个模式。
	8、U 和问号的作用差不多,用于设置"贪婪模式"。


**
正则表达式常用函数
**
//preg_grep — 返回匹配模式的数组条目
	$str = array("Hello", "Hello World", "World"); 
	$str1 = preg_grep("/^[a-z]*$/i", $str);//匹配返回所有仅由有一个单词组成的数组,匹配成功后返回新数组  
	print_r($str1);
	/*返回结果
	Array
	(
	    [0] => Hello
	    [2] => World
	)*/

//preg_split — 通过一个正则表达式分隔字符串
	$arr = preg_split('/[,]/', 'HELLO,WORLD,hello,world');
	print_r($arr);
	/*返回结果
	Array
	(
	    [0] => HELLO
	    [1] => WORLD
	    [2] => hello
	    [3] => world
	)*/
	
//preg_replace — 执行一个正则表达式的搜索和替换
	print_r(preg_replace('/hello[0-9]/','','hello5 Hello World hello6')); 
	//返回 Hello World

//preg_match — 执行匹配正则表达式
	$str = '/Hello World/';
	echo preg_match("/^(\/)([^\/.]+)(\/)/",$str,$arr);//匹配成功放回1,失败返回0
	print_r($arr);
	/*返回结果
	Array
	(
	    [0] => /Hello World/
	    [1] => /
	    [2] => Hello World
	    [3] => /
	)*/

//preg_match_all — 执行一个全局正则表达式匹配
	preg_match_all('/php[1-9]/','php5Hellophp6Worldphp7',$arr);  
	print_r($arr); 
	/*返回结果
	Array
	(
	    [0] => Array
	        (
	            [0] => php5
	            [1] => php6
	            [2] => php7
	        )
	
	)*/

//preg_quote — 转义正则表达式字符
	$str = '$Hello *World Hello/World';
	$str = preg_quote($str, '/');
	echo $str; //返回结果 \$Hello \*World Hello\/World

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值