**
正则表达式常用元字符
**
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
PHP正则表达式元字符与常用函数
于 2017-12-28 18:23:27 首次发布