您的位置:首页 > 编程语言 > PHP开发

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

2017-12-28 18:23 239 查看
**
正则表达式常用元字符
----------
**
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

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

**
正则表达式常用函数
---------
**
//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

/*
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 和问号的作用差不多,用于设置"贪婪模式"。
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 正则表达式